首页 > 代码库 > Java 二进制表示整负数算法

Java 二进制表示整负数算法

  计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码, 补码=反码+1。在 二进制里,是  用 0和 来表示正负的,最高位为符号位,最高位为 代表负数,最高位为 代表正数。

  以java中8位的byte为例,最大值为:0111 1111(127),最小值为1000 0001(-128)。

  那么根据十进制的数字,我们如何转换为二进制呢?对于正数我们直接转换即可。

  对于负数则有一个过程,那么已负(-128)为例:

  1:先将-128的绝对值转换成二进制,即为:1111 1111

  2:然后求该二进制的反码,即为 1000 0000(注意 取反时,符号位不参与取反)

  3:最后将反码加1,即为 1000 0001