zoukankan      html  css  js  c++  java
  • 二进制的原码,反码,补码简介

    二进制的原码,反码,补码简介

    一,原码

    1,正数的原码:将正数转换为二进制位就是这个正数的原码(高位为0,表示为正数,这个位置是符号位。)

    例如:在计算机中,int 类型的十进制数10,的原码为:00000000 00000000 00000000 00001010。

               在计算机中,int 类型的十进制数8,的原码为:00000000 00000000 00000000 00001000。

    2,负数的原码:将负数的绝对值转换成二进制位然后在最高位前补1就是这个负数的原码。(这个位置是符号位。)

    例如:在计算机中,int 类型的十进制数-10,的原码为:10000000 00000000 00000000 00001010。

               在计算机中,int 类型的十进制数-8,的原码为:10000000 00000000 00000000 00001000。

    二,反码

    1,正数的反码:正数的反码就是原码。

    例如:在计算机中,int 类型的十进制数10,的原码,和反码都为:00000000 00000000 00000000 00001010。

               在计算机中,int 类型的十进制数8,的原码,和反码都为:00000000 00000000 00000000 00001000。

    2,负数的反码:负数的反码等于原码除符号位以外所有的位取反(即,除符号位以外,原码为1,则反码相对位置为0)

    例如:在计算机中,int 类型的十进制数-10,的原码,和反码都为:11111111 11111111 11111111 11110101。

               在计算机中,int 类型的十进制数-8,的原码,和反码都为:11111111 11111111 11111111 11110111。

    三,补码

    1,正数的补码:正数的补码与原码相同,

    例如:在计算机中,int 类型的十进制数10,的原码,反码和补码都为:00000000 00000000 00000000 00001010。

               在计算机中,int 类型的十进制数8,的原码,反码和补码都为:00000000 00000000 00000000 00001000。

    2,负数的补码:负数的补码为 其原码除符号位外所有位取反,然后最低位加1(即反码加一)

    (注:负数的求反码和补码的取反过程符号位是不参与计算的,要取出来,只有在进行负数补码的加减法的时候符号位才参与计算  ).

    例如:在计算机中,int 类型的十进制数-10,的原码,反码和补码都为:11111111 11111111 11111111 11110110。

               在计算机中,int 类型的十进制数-8,的原码,反码和补码都为:11111111 11111111 11111111 11111000。

    四,程序示例

    java中的二进制:

    public class binary {
        public static void main(String[] args) {
            System.out.println("Java二进制10: "+Integer.toBinaryString(10));
            System.out.println("Java二进制8: "+Integer.toBinaryString(8));
            System.out.println("Java二进制-10: "+Integer.toBinaryString(-10));
            System.out.println("Java二进制-8: "+Integer.toBinaryString(-8));
        }
    
    }

    运行结果:

    五,总结

                  1,正数的反码和补码都与原码相同。

          2,负数的反码为对该数的原码除符号位外各位取反。

        3,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1

                   4,在java中正整数是以原码形式存储的,负整数是以补码形式储存的。

     
  • 相关阅读:
    同步gitlab与github
    配置hosts快速访问GitHub
    Linux下Julia安装
    LATEX图片位置
    IPOPT安装
    sqlplus传入shell变量
    users表空间满导致应用无法连接
    坏块修复 ORA-00701
    Oracle中INITRANS和MAXTRANS参数(转)
    DBMS_ROWID包的使用
  • 原文地址:https://www.cnblogs.com/20183544-wangzhengshuai/p/11529612.html
Copyright © 2011-2022 走看看