分享

Java中负数的二进制表示

 好闺女瑶瑶 2017-07-28

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

    以Java中8位的byte为例,最大值为:0111 1111,最小值为1000 0001。

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

    以负数-5为例:

    1.先将-5的绝对值转换成二进制,即为0000 0101;

    2.然后求该二进制的反码,即为 1111 1010;

    3.最后将反码加1,即为:1111 1011

所以Java中Integer.toBinaryString(-5)结果为11111111111111111111111111111011. Integer是32位(bit)的.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多