1.下面代码的意图或结果 |
#include<iostream> using namespace std; int func(int x) { int count = 0; while(x) { count ++; x = x & (x + 1); } return count; } int main() { cout<<func(9999)<<endl; return 0; } |
2.1变量t的结果是多少
char i= -1;
unsigned char t = I;
2.2变量t的结果是多少
unsigned char t = 0;
t --;
从上头两个题目来看,它们的目的是检验数据在计算机当中的存储
我们先来了解三个概念
原码:将存储的数值转变为二进制就是原码,负数的符号位为第七位(最前面的一位作为符号位)
反码:正数的反码与原码相同,负数的反码是逐位取反符号位除外
补码:正数的补码与原码相同,负数的补码是原码取反加一
有符号的-1 è 原码 1000 0001
反码 1111 1110
补码 1111 1111 è无符号的255
在计算机当中存储都是采用补码存储