zoukankan      html  css  js  c++  java
  • 【作业】原码、反码、补码(在Java相比C也没啥特殊的所以算是复习吧)

    定义

    原码:用数值位和符号位表示一个带符号的数

    反码:正数的反码与原码相同,负数的反码是对该数的原码除符号位外各位取反

    补码:正数的补码与原码相同,负数的补码是对该数的原码除符号位外各位取反,末位加1

    Java测试:

    int i=1,t=0;

                  for(;t<30;)

                  {

                         i=i*2;

                         t++;

                         System.out.println("("+t+") "+i);

                  }

    //得到最大在2^30到2^31,根据经验应该是比2^31略小,2^31=2147483648

                  i=i-1;

                  i=i*2;

                  System.out.print(i++);  

                  System.out.println("  *-1   "+-1*i); 

                  System.out.print(i++);  

                  System.out.println("   *-1  "+-1*i);

                  System.out.print(i++);  

                  System.out.println("   *-1  "+-1*i);

                  System.out.print(i++);  

                  System.out.println("  *-1   "+-1*i);

                  System.out.print(i++);  

                  System.out.println("  *-1   "+-1*i);

                  System.out.print(i++);  

                  System.out.println("   *-1  "+-1*i);

                  System.out.print(i++);  

                  System.out.println("  *-1   "+-1*i);

    输出:

    (1)   2

    (2)   4

    (3)   8

    ……

    (28)  268435456

    (29)  536870912

    (30)  1073741824

    2147483646  *-1   -2147483646            //2^31-2

    2147483647   *-1  -2147483647          // 2^31-1

    -2147483648   *-1  2147483648           //2^31

    -2147483647  *-1   2147483647         // 2^31+1

    -2147483646  *-1   2147483646          // 2^31+2

    -2147483645   *-1  2147483645          // 2^31+3

    -2147483644  *-1   2147483644         //  2^31+4

    2^31-2 二进制表示为:0111 1111 1111 1111 1111 1111 1111 1110

    2^31-1 二进制表示为:0111 1111 1111 1111 1111 1111 1111 1111

    2^31   二进制表示为:1000 0000 0000 0000 0000 0000 0000 0000

    所以不是原码

    对于2^31

    如果是反码

    1000 0000 0000 0000 0000 0000 0000 0000 表示负数取反得

    1111 1111 1111 1111 1111 1111 1111 1111 换算为十进制是 - 2^31-1

    如果是补码

    1000 0000 0000 0000 0000 0000 0000 0000

    表示 - 2^31

    对于2^32 1000 0000 0000 0000 0000 0000 0000 0001

    反码 1000 0000 0000 0000 0000 0000 0000 0000

    原码 1111 1111 1111 1111 1111 1111 1111 1111 1111

    表示- 2^31-1

    与实验相符

    经过计算,按照补码其他的均相符。

  • 相关阅读:
    【软件工程】 第1次团队作业
    Daily scrum 2015.10.19
    Buaaclubs的NABC与发布
    团队作业2
    团队介绍——窝窝头
    [Alpha阶段]第四次Scrum Meeting
    [Alpha阶段]第三次Scrum Meeting
    [Alpha阶段]第二次Scrum Meeting
    [Alpha阶段]第一次Scrum Meeting
    团队贡献分分配规则
  • 原文地址:https://www.cnblogs.com/CCRNRT/p/9752313.html
Copyright © 2011-2022 走看看