二进制 原码 补码 反码 符号位 正负数 数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29580525/article/details/81980657

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;

在计算机运算的时候,都是以补码的方式来运算的(符号为也运算);

猜你喜欢

转载自blog.csdn.net/qq_29580525/article/details/81980657