char溢出计算
来源:互联网 发布:南阳网络推广哪家专业 编辑:程序博客网 时间:2024/05/29 15:36
无符号char 类型能标示的数是:0-255
有符号char类型能标示的数是:-128-127
char c = 128;
printf("c = %x \n", c);
得到结果是:
c = ffffff80
这个如何理解 char是一个字节的,怎么变成四字节了???
128的十六进制是0x80, 也就是2^7, 二进制看起来像这样:1000 0000 ,赋值给有符号数char c,其二进制不变。
但是小于sizeof(int)的整数在使用时其实都是扩展到sizeof(int)再计算的,对于有符号数扩宽填充符号位,这里char ch=128的符号位是1,所以就是扩充了1111 1111 1111 1111 1111 1111 1000 0000,这样,打印%x时候,就是你看到的结果了。
这个扩宽是很正常的,并不会影响一个数值本身, 只是存储的字节变宽了而已。
比如char ch =1; 那么扩宽后是0x00 00 00 01,还是1.
比如short st = -1, 其十六进制原来是:0xff ff, 扩宽为int后是0xff ff ff ff,因为int是有符号数,所以实际的值是取反+1,就是- (0x00 00 00 00 + 1) = -(0x00 00 00 01), 还是-1。重新截断回short,也就是从0xff ff ff ff变为0xff ff,因为short是有符号数, 取反+1后还是-1, 始终是一致的。
0 0
- char溢出计算
- char如何计算溢出值
- char如何计算溢出值
- char 溢出
- char溢出
- unsigned char 数值溢出问题
- 关于char的溢出问题
- vb计算溢出问题
- 数据类型之char型溢出的讨论。
- (un)signed char 及溢出
- 合理安排计算顺序避免溢出
- Java日期计算溢出问题
- 关于数据溢出的计算
- Less中的颜色计算溢出
- 组合数计算,防止溢出
- Java中char型计算
- SQL SERVER bitmask计算 以及溢出问题
- 数值计算的符号转换和溢出
- php Laravel框架学习(四) 之 表单与HTML
- 4554: [Tjoi2016&Heoi2016]游戏
- 【学习笔记之Openlayers3】初次接触openlayers3(第一篇)
- 【数据结构】图Graph的邻接矩阵,邻接表及深度、广度遍历
- CentOS7.2系统Hadoop集群部署
- char溢出计算
- 蓝牙Android
- WCF初接触
- Servlet开发步骤二
- php文件下载的一些浅谈
- __attribute__ 之weak,alias属性 .
- 【MongoDb入门】基础入门
- 记android学习之路----ContentProvider
- xxx