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. 大值赋值给带符号数
给带符号数一个超出它表示范围的值时,结果是未定义的。相关文章推荐
- C++11中的匿名函数(lambda函数,lambda表达式) (转)
- c++ 使用全局变量的方法多个文件
- C++第二节(1):public和private、初始化列表、函数重载
- 面向 C++ 的测试驱动开发
- LeetCode 207. Course Schedule(拓扑排序-求有向图中是否存在环)
- VC: 更改MFC程序图标
- 安装cpplint
- C++技巧之STL(持续更新)
- 数字滤波器实现(mantlab+C语言)
- C语言链表(1)——搜索
- Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
- c++模板
- C++构造函数与传默认值的关系
- IOS开发系列--C语言之存储方式和作用域
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- 逗号运算符
- c语言之cgi
- c++ 动态库和静态库
- 一个C语言编写的贪吃蛇游戏
- C/C++类型强制转换