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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jx836202365 中级黑马   /  2015-6-10 23:29  /  1544 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main(int argc, const char * argv[]) {

   
    int b =~7;
   
  
    //     000000000000000000000111  7的原码
    //     111111111111111111111000  ~7的值
    //     100000000000000000000111  ~7的反码
    //     100000000000000000001000  ~7的补码
   
    printf("b = %d",b);
    return 0;
}
这是我自己算的。~7是仅仅对7的原码按位取反,还是对它内存中存储的那个值即补码进行按位取反。从计算结果逆推好像是对原码啊,但是后面算值的时候又要将那个值当作内存中存储的数据即补码,还需要 除了首位取反加1计算原码,这不是前后矛盾么

2 个回复

倒序浏览
。。。。。。。。。。。。。正数的原发反码补码都是一样的
回复 使用道具 举报
对了 忘记说 ~是按位取反 和求反码不是一个意思
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马