总结
- 运算符
(1) 算术运算符:+ - * / ++ --
(2) 逻辑运算符:
① 逻辑与&,逻辑非!,逻辑或|
② 逻辑与短路&&,逻辑或短路||
③ 区别:&无论前面是真假后面的语句都会执行,无断路 ,&&前面的语句是假则后面的语句不会执行,断路。同理|无论前面的语句是真假,后面的语句都会执行,||当前面的语句出现真的时候,后面的语句不会执行,会短路
④ 三目运算符 a?b:c 当a为true时执行b,当a为false时执行c
(3) 赋值运算符 = >= <=
(4) %取余的运算细节:当被取余数是小数时,会使用公式a-(int)a/b*b 先除再乘
① 例如-10.5%3 = -10.5-(int)-10.5/3*3
- 扫描器
(1) Scanner scanner=new Scanner(System.in)
(2) Int a=Scanner.nextInt();
(3) String name=Scanner.next();
- 进制:
(1) 什么是进制
① 二进制:以0b开头的8位,每一位最大数为1的进制
② 八进制:以0开头,每一位最大数为7的进制
③ 十六进制:以0x开头,每一位最大数为F的进制
(2) 进制转换
① 二进制转十进制:每位上的数*2^(位数-1)相加
② 八进制转十进制:每一位上的数*8^(位数-1)相加
③ 十六进制转十进制:每一位上的数*16^(位数-1)相加
④ 十进制转二进制:该数/2,直到商为0时,把余数倒过来就是转换后的二进制
⑤ 十进制转八进制:该数/8,直到商为0时,把余数倒过来就是转换后的八进制
⑥ 十进制转十六进制:该数/16,直到商为0时,把余数倒过来就是转换后的十六进制
⑦ 八进制转二进制:1位的八进制数用3位的二进制数表示。
⑧ 十六进制转二进制:1位的十六进制数用4位的二进制数表示
⑨ 二进制转八进制:3位的二进制转换成八进制的1位数
⑩ 二进制转十六进制:4位的二进制数转换成十六进制的1位数
- 原码,反码,补码
(1) 在进行逻辑与&,逻辑或|,取反,等运算的时候计算机底层原理
(2) 2&3=?
① 2的原码:00000000 00000000 00000000 00000010
② 2的补码:00000000 00000000 00000000 00000010(三码合一)
③ 3的原码: 00000000 00000000 00000000 00000011
④ 3的补码:00000000 00000000 00000000 00000011(三码合一)
⑤ 运算:补码和补码直接运算
⑥ 00000000 00000000 00000000 00000010
⑦ 00000000 00000000 00000000 00000011
⑧ 结果00000000 00000000 00000000 00000010(逻辑与运算两个数为1才是1)
(3) 八大原则
① 负数的反码:符号位不变其他位取反
② 正数的原码,反码,补码相同(三码合一)
③ 负数符号为为1,正数符号位为0
④ 负数=补码-1,补码=负数+1;
⑤ 计算机在运算的时候是补码在运算
⑥ 计算机在展示结果的时候是原码在展示
⑦ JAVA中的数都是有符号的
⑧ 0的反码是0,0的补码是0
位运算符
① 逻辑与:两个数是1结果是1;
② 逻辑或:一个数是1,一个数是0,结果是1;
③ 逻辑异或:两个数相同是1,不同是0;
④ 取反:0->1,1->0
⑤ >>左移:本质是/2,低位溢出,符号位不变,符号位补溢出的高位
⑥ <<右移:本质是*2,符号位不变,低位补0
⑦ >>>无符号左移:符号位补溢出的高位
标签:十六进制,逻辑,JAVA,00000000,补码,Day3,二进制,强化,八进制 From: https://www.cnblogs.com/JK02/p/17056132.html