C-C++练习10
来源:互联网 发布:手机游戏源码论坛 编辑:程序博客网 时间:2024/05/22 01:30
1、下面程序在80x86架构下,输出什么值?
union Test{ char a[4]; short b;}Test t;t.a[0] = 256;t.a[1] = 255;t.a[2] = 254;t.a[3] = 253;printf("%d\n", t.b);
答案: -256
分析:
char类型的取值范围是-128~127,unsigned char的取值范围是0~256
这里a[0]=256,出现了正溢出,将其转换到取值范围内就是0,即a[0]=0;
同理,a[1]=-1, a[2]=-2, a[3]=-3,在C语言标准里面,用补码表示有符号数,故其在计算机中的表示形式如下:
a[0]=0, 0000 0000
a[1]=-1, 1111 1111(反码+1 = -1)
a[2]=-2, 1111 1110
a[3]=-3, 1111 1101
short是2字节(a[0]和a[1]),由于80X86是小端模式,即数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,在本例中,a[0]中存放的是b的低位,a[1]中存放的是b的高位,即b的二进制表示是:1111 1111 0000 0000,表示-256
0 0
- c练习10
- c语言练习10
- C-C++练习10
- C-C++练习10
- C练习
- C练习
- C 练习
- c练习
- C练习
- C练习
- c 练习
- C程序设计语言练习2-10
- c/c++练习–10
- C语言基础练习10
- C 练习实例1-10
- 【c基础练习】文件练习
- c c c 语言 小练习
- C Primer Plus 练习 10-10
- VC之美化界面篇
- 排序大法之希尔排序
- wifi: 连接网络时提示“已连接无法访问互联网”几秒钟后消失
- OpenCV 3学习笔记(二) 图像的显示、腐蚀与模糊
- Java 集合
- C-C++练习10
- 获取浏览器相关参数的类
- 基于百度地图的自定义导航app-西华易导航(终)
- POI实现导出Excel级联操作
- 看到她们的妈妈, 也难怪“小芈月”“阿拉蕾”“小苹果”长那么好看
- 20161217
- 基于Maven在Spring中集成CXF,发布Web Service
- Notification---Android
- JS中的函数提升及变量提升