《C++ Primer》笔记之一
时间:2011-05-16 来源:sheshiji
第一章
1、Page 32
代码:
1、Page 32
代码:
View Code
1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 unsigned char test_1 = -1;
7 signed char test_2 = -1;
8 unsigned char test_3 = 336;
9
10 cout << (unsigned int)test_1 << endl;
11 cout << (signed int)test_2 << endl;
12 cout << (unsigned int)test_3 << endl;
13
14 return 0;
15 }
打印结果为:255和-1,80
解析:
负数在计算机中是以二进制补码形式存放的,对于8位二进制数而言,-1的原码为1000 0001,其中最高位为1,代表负数,对应的补码则为1111 1111,当以无符号数读取是,该
补码被读出为255.
以有符号数读出时为-1.
unsigned char的最大值为255,及1111 1111,当超过255的值赋给unsigned char对象时会截断数据,如336,对应的二进制数为1 0101 0000,所以阶段后面的8位,及
0101 0000,对应的数即为80.
2、Page 34
代码:
相关阅读 更多 +