您的位置:首页 > 编程语言 > Java开发

Java中负数的二进制如何计算

2017-09-30 14:47 323 查看
计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,补码=反码+1。

在二进制里,是用0和1来表示正负的,最高位为符号位,最高位为1代表负数,最高位为0代表正数。

以java中8位的byte为例,最大值为:0111 1111,最小值为1000 0001。
        那么根据十进制的数字,我们如何转换为二进制呢?对于正数我们直接转换即可,对于负数则有一个过程。
        以负数-10为例:
       1.先将-5的绝对值转换成二进制,即为0000 1010;
       2.然后求该二进制的反码,即为 1111 0101;
       3.最后将反码加1,即为:1111 0110
       所以Java中Integer.toBinaryString(-10)结果为11111111111111111111111111110110. Integer是4个字节,32位(bit)的。
      Java中Long.toBinaryString(-10)结果为1111111111111111111111111111111111111111111111111111111111110110.
Long是8个字节,32位(bit)的。

转自:http://blog.csdn.net/zgrjkflmkyc/article/details/12185143
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: