电脑常识二进制数表达

来源:百度知道 编辑:UC知道 时间:2024/05/21 06:15:52
二进制形式 11111111的数据
为什么 以byte类型表示为 -1
以 int 类型表示为 255
byte是8位补码,表示范围是 -128 ~ 127,没办法表示255的
那为什么就是 -1 啊
补码我忘记什么了 ..
>_<

kanvic119
你说溢出?
溢出变成-255,也变不成-1啊

计算机中的数据都是以补码的形式来表示的
byte是表示八位的数据 11111111是数据的补码
最高位是符号位 0表示正数 1表示负数
因为最高位为1 所以此数为负数 负数的补码等于反码+1
数据的反码是11111110,符号位不变,数据取反后,
原码就是10000001 即-1

int表示数据为整型,最高位不是符号位,所以11111111值为255

int占4个字节,byte是1个字节,每个字节8位。
int最多可以表示正负一共2的32次方个数,byte则是2的8次方。
byte转换int直接赋值,int转byte强制类型转换,因为涉及精度
int类型的如255在计算机中表示00000000 00000000 00000000 11111111
byte8位,它能表示的范围是-255-255,8个1的话也就是2的8次方(即256)产生溢出,所以计算机就表示为-1了。

byte是8位补码,表示范围是 -128 ~ 127,没办法表示255的
11111111就是-1
int可能是16位或者32位或者64位,总之表示范围比255大得多
很多0后面跟11111111表示的就是255,全部是1的话表示的同样是-1

反码