为什么二进制为11111111的数据,以byte类型表示为-1

2025-01-13 08:22:31
推荐回答(3个)
回答1:

这是因为位数不够造成的,即最高位前有溢出位。溢出位为1时,表示该数为负数。而负数是利用补码进行计算的;就是将该数的数字位全部取反,1转换为0,0转换为1,然后加1。11111111的补码是0,0+1=1,所以表示的是-1.

回答2:

1."11111111"左边第一位为符号位,0-正数,1-负数。
2.采用“补码表示法”,结果就是-1。
3.若还不明白,去看一下关于“补码”的定义。
4.byte定义的bit位数是8位的带符号。

回答3:

超了把,超过最大数