字节数据类型是8位带符号的二进制补码整数

时间:2015-01-22 11:12:27

标签: java

字节数据类型是8位有符号 二进制补码整数

这句话是什么意思?

2 个答案:

答案 0 :(得分:1)

这意味着byte是:

  1. 整数(如:1,2,3,4 ......)

  2. ,范围从-128到127

  3. 为签名保留一位

  4. binary representation of number的7位:

  5. 00000001 for 1,

    00000010 for 2,

    00000011 for 3,

    ...

    我认为在提问之前read wiki更好

答案 1 :(得分:0)

当你看到8位二进制数时,从数学上讲,它代表一个正整数。例如:(10001001)= 137 所以8位你可以有0..255。 但是在计算机中我们还需要负数的表示,其中一个基本解决方案是使用一位表示数字的符号,使用7位表示数字的大小,称为符号幅度表示。例如:(10001001)= 9& (0001001)= 9 这样你就可以显示数字-127..0,0..127。请注意,我写了两次0,因为当幅度为0时,符号不重要,因此(10000000)和(00000000)都代表0。 另一种表示负数的方法是1的补码,其中负数是其数量的按位补码。 例如:(00001001)= 9& (11110110)= - 9 再次可表示的范围是-127..127,我们又有两个表示0,即:(00000000)=(11111111) 但是以这种方式显示负数对于实现算术运算有一些好处。 然后我们有2的补充。这里对于负数,首先我们对其幅度进行按位补码,然后我们将其加1。例如:(00001001)= 9& (11110111)= 9 这样就可以解决两个表示为0的问题,并且我们有一个可表示的范围-128..127。

有关详细信息,请参阅http://en.m.wikipedia.org/wiki/Signed_number_representations。 顺便说一句,对不起我糟糕的英语。