进制
我们都知道计算机使用的是二进制运算。以byte为例,8位能表达的范围从(00000000)2~(11111111)2,转成十进制就是0~255,但由于还有负数的存在,byte实际表达的范围是-128~127。在计算机里,对于有符号的数据类型,会把最高位做为符号位,如果为1,则为负数。负数通常有三种表达方式,原码,反码与补码。
原码:把符号位设为1。如11的二进制是00001011,-11就是10001011。
反码:所有数字取反。-11是11110100。
补码:在反码的基础上加1。-11是11110101。使用补码的好处包括,0和-0的表示相同,正负数可以直接进行加减法运算。现代计算机都是使用补码来表示负数。
二进制正负转换快速算法:最右边的1不变,前面几位取反。
对byte进行运算时,会将byte转换为int再进行运算,因此要注意byte的取值范围,超出范围的话会出现错误的结果。如:
byte x=(byt