关于整型提升
来源:互联网 发布:混沌与秩序在线数据库 编辑:程序博客网 时间:2024/06/05 03:22
经历了很惨痛的教训之后,我终于理解了整型提升(隐式类型转换)这个看起来很不经意的小东西,为了让我永远记住这个小教训,我决定把它写下来。(虽然我可能以后也不会这样写程序)
#include <stdio.h>#include <stdlib.h>int main(){unsigned char a = 200;unsigned char b = 100;unsigned char c = 0;c = a + b;printf("%d %d ",a+b,c);system("pause");return 0;} //结果:300 44int main(){char c;unsigned char uc;unsigned short us;c = 128;uc = 128;us = c + uc;printf("0x%x\n",us);us = (unsigned char)c + uc;printf("0x%x\n",us);us = c + (char)uc;printf("0x%x\n",us);system("pause");return 0;} //结果:0x0 0x100 0xff00
这样的结果在我第一次看到简直觉得不可思议(事实上自我学习C语言来我不可思议的次数原本我能够毫无障碍地读懂一个程序的时候来的多得多得多),这里就涉及到整形提升。
C的整型算数运算总是至少以缺省整型类型的精度来进行的,为了获得这个精度,表达式中的字符型和短整型操作数在使用之前被转换为普通整型。(这句话出自《C和指针》)这样我们就可以很轻松地解决上面这两个小程序了。还有一个需要注意的地方是,char在表示整数时范围为-128到127,unsigned char的表示范围则是0到255.
0 0
- 关于整型提升
- 关于整型类型提升的一点说明
- 关于C语言整型提升的讲解
- 整型提升
- 整型提升
- 整型提升
- 整型提升
- 整型提升
- 整型提升
- 整型提升(integral promotions)
- C中的整型提升
- C中的整型提升
- 【C语言】整型溢出和整型提升
- C 语言中的整型提升
- 整型提升 和 位操作
- C++ 整型提升的规则
- C语言进阶:整型提升
- char 类型的整型提升
- Keepalived以及yum那点事
- ajax实现购物车中的加减
- Bitmap压缩总结
- android shape 属性详细用法
- 购物车的实现
- 关于整型提升
- 旋转屏幕Activity执行的生命周期方法
- 文件的编码
- 第三十九讲项目1.2——输出1000以内的所有完数
- 数据结构课程总结
- char* p和char p[];
- opencvr - 单个store支持多少摄像头
- Mysql数据库的使用
- Servlet之HTTP协议、注册案例、Servlet运行原理、请求方式、乱码解决方案