您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记(类型转换)

2015-07-27 17:22 330 查看

1. 非布尔类型到布尔类型

当我们把一个非布尔类型的算术值赋给布尔类型时,初始值是0则结果为false,否则结果为true。

2. 布尔类型到非布尔类型

当我们把一个布尔值赋给非布尔类型时,初始值为false则结果为0,初始值为true,则结果为1.

3. 浮点到整型

当我们把浮点类型转换成整型时,进行近似处理,保留整数部分。

4. 整型到浮点

把整型赋值给浮点类型,小数补0。整型占用空间大可能会导致精度损失。

5. 其他类型到无符号类型

赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。

特别的:有符号类型到无符号类型转换:

unsigned char a=-1;    //a=255
unsigned char b=-2;    //b=254


理解这里的重点在于:类型转换不会改变内存中数值的表示,只会用不同的方式重新解释。

负数在内存中以反码的方式表示,所以-1本身为:1000 0001 反码为原码取反加1,所以在内存中表示为:1111 1111,因此被解释成255。

无符号char表示的数值总数为0~255,总共256个,因此取余后为255.

6. 大值赋值给带符号数

给带符号数一个超出它表示范围的值时,结果是未定义的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: