JAVA基础强化Day3

总结

  1. 运算符

(1) 算术运算符:+ - * / ++ --

(2) 逻辑运算符:

① 逻辑与&,逻辑非!,逻辑或|

② 逻辑与短路&&,逻辑或短路||

③ 区别:&无论前面是真假后面的语句都会执行,无断路 ,&&前面的语句是假则后面的语句不会执行,断路。同理|无论前面的语句是真假,后面的语句都会执行,||当前面的语句出现真的时候,后面的语句不会执行,会短路

④ 三目运算符 abc atrue时执行b,当afalse时执行c

(3) 赋值运算符 =  >=  <=

(4) %取余的运算细节:当被取余数是小数时,会使用公式a-(int)a/b*b 先除再乘

① 例如-10.5%3 = -10.5-int-10.5/3*3

  1. 扫描器

(1) Scanner scanner=new Scanner(System.in)

(2) Int a=Scanner.nextInt();

(3) String name=Scanner.next();

  1. 进制:

(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. 原码,反码,补码

(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的反码是00的补码是0

位运算符

① 逻辑与:两个数是1结果是1

② 逻辑或:一个数是1,一个数是0,结果是1

③ 逻辑异或:两个数相同是1,不同是0

④ 取反:0->1,1->0

⑤ >>左移:本质是/2,低位溢出,符号位不变,符号位补溢出的高位

⑥ <<右移:本质是*2,符号位不变,低位补0

⑦ >>>无符号左移:符号位补溢出的高位

posted @ 2023-01-16 18:47  JK02  阅读(22)  评论(0)    收藏  举报