1.对一个二进制数 1100 1111 1100 0111 转化为十进制是多少?
如果最高位是符号位转换成十进制为 -12345, 而如果最高位不是符号位则为 53191
如何怎么判断1100 1111 1100 0111最高位是否是符号位呢?
不能判断 数据本无型,原本在人心.你想把它当做有符号就有符号,你想把它当做无符号就是无符号.它本身并没有类型区别.
2.对于 _ _ _ _ _ _ _ _ 八个bit表示的数
你认为它是无符号的,那么它可以表示0~255共计256个数字
你认为它是有符号的,那么它只能表示-128~127共计256个数字
3.计算机中存储的都是二进制
bit(位):b,也称为比特(bit),每个二进制数字0或1就是一个位(bit). 8b(bit)=1B(byte 字节)
对于上面的问题,我们在使用前必须明确是否有符号位。
在Java中所有的数据类型都是有符号类型。其他语言有无符号位的类型
int数据类型占4个byte(字节) 最高位是符号位
00000000 00000000 00000000 00000000 -2^31~2^31
正数的原码、反码、补码都一样
负数的反码 = 它的原码符号位不变,其他位取反(0 ->1 ; 1->0 );
负数的补码 = 它的反码 +1;
在计算机运算的时候,都是以补码的方式来运算的(符号为也运算);