计算机最小的传输单位是位(bit),最小的存储单位是字节(byte);
8bit=1byte=1boolean=2short=4int=8long=4float=8double=2char
8位 二进制整数的 最高位为表示符号位(0:正数,1:负数),我们看到的是原码,计算机底层存储的是数据的补码
正数的原码反码补码都一致,负数的补码是负数的反码加一,因此负数的补码=反码+1,原码=(数值位取反,符号位不变)反码。
-
二进制: 0b
-
八进制: 0
-
十进制: 无
-
十六进制:0x
float底层数据结构与整数有差异,采用的是科学计数法,实际数据表示范围要比long类型大
-
&(逻辑与):1假则假
-
|(逻辑或):1真则真
-
^(逻辑异或):不同则真
-
!(逻辑非):真假相反
-
&&(短路与):同&,区别是左边是false,右边不执行
-
||(短路或):同|,区别是左边是true,右边不执行
单独使用,无区别,表示自增(减)1;在变量表达式中,++i表示先自增1后赋值,i++表示先赋值后自增1。
特点: 数据先转化成二进制在运算,效率高;
-
&(与):有0则0
-
|(或):有1则1
-
^(异或): 相同则0,不同则1,某个数据对另一个数据异或两次,该数不变 a ^ b ^ b = a(简单的数据加密,变量交换(左:aba,右:a^b));
-
~(按位取反): 0变1,1变0
-
<<(左移): 左边最高位丢弃,空位补0:把该数*2的移动次数幂 eg:3 << 2 = 3 * 2^2 = 12
-
>>(右移): 最高位是0,左边补0;最高位是1,左边补1;:把该数/2的移动次数幂 eg:24 >> 2 = 24 / 2^2 = 6
-
>>>(无符号右移): 总是为正数,左边补齐0,其他同>>
-
统计思想
-
求和思想
评论