A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

   我们都知道,数据在内存中是以二进制的形式存在的,参加运算的是二进制数据的补码。先介绍一下关于二进制码的几种码
1原码  即是我们十进制的数转换为二进制数的原始数据
   比如 128  ----   原码   10000000  
2 反码  规则是这样的  一个二进制数的最高位是符号位,0 代表正数,反码和补码都是它本身,1代表负数, 反码是符号位不变其他位0变1,1变0.】
           128 ----  反码     11111111
3 补码   反码减一则是补码
            128 -----  补码   11111110
说一个例子,int a=(byte)200;   输出啊,会是多少?
     
    200  是默认是int 型   00000000  00000000 00000000 11001000
    强转后变为补码    11001000
   原码是符号位不变,所有按位取反, 10110111
     最高位 1 说明是负数,符号位不变,剩余的位数加一则是反码  10111000
    结果是-56。  有疑问的可以上来讨论
   
    所以结果是-54
     
      

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马