首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

《C++ Primer》笔记之一

作者:  时间: 2011-05-16

第一章
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
  代码: