栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于java中补码的概念以及如何用编程输出补码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于java中补码的概念以及如何用编程输出补码

  • 关于原码反码补码

以下例子都为8字节

不论原码反码还是补码第一个数字0都表示正数,1表示负数

例:11110010的第一个数字是1表明该数是负数,对应十进制的-14

正数的原码补码反码都一样

负数的原码换成反码第一位不变,其他位取反

反码换成补码+1即可

例:-14的原码10001110,反码是11110001,补码是11110010

如果想知道一个补码对应的十进制是多少最简单的方法是先看第一位数字符号是1还是0确定正负,如果是正数可以直接得出十进制,如果是负数则根据补码求出原码,然后再得出具体数字

  • 补充说明

0的补码是00000000,-1的补码是11111111(-1的原码是10000001)

0~127的补码就是按顺序往上加,00000000,00000001,00000002以此类推

-1~-128的补码则是按顺序往下减,11111111,11111110,11111101以此类推

之所以byte的取值范围是-128~127是因为正数是从0开始取而负数从-1开始取

  • 编程实现

public class PrintComplementCode {//输出一个数字的补码
    
    public static void printComplementCode(byte i){//输出补码的方法
        for(int j=7;j>=0;j--)
            if(((1<                System.out.print("1");
            else
                System.out.print("0");
        System.out.print("n");
    }

    public static void main(String[] args) {//生成一个-128~127的数并输出这个数的补码
        byte num=(byte) (Math.random()*256-128);
        System.out.print(num+"的补码是");
        printComplementCode(num);
    }
}

  • 输出结果

-70的补码是10111010

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/239052.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号