char如何计算溢出值
来源:互联网 发布:欧洲 旅馆 网络 编辑:程序博客网 时间:2024/05/16 08:00
无符号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溢出
- 自己写一个strcpy(char*dest,char*src),如何在函数内部实现防御性溢出?
- signed char类型取值范围计算
- unsigned char 数值溢出问题
- 关于char的溢出问题
- vb计算溢出问题
- 计算两个数的中间值,并且防溢出
- 捕鱼下载进度条显示错误(进度值计算溢出)
- 挣值如何计算?
- 挣值如何计算?
- 挣值如何计算?
- 挣值如何计算?
- C++ bool,char,short,int,long,float,double数据类型大小以及数据溢出值求解
- 数据类型之char型溢出的讨论。
- 美国NOAA/AVHRR遥感数据
- spring-boot中使用springloaded实现热部署
- 用字符指针变量指向一个字符串,然后输出字符及其长度
- Java1.5语法糖的味道--增强for循环
- 欢迎使用CSDN-markdown编辑器
- char如何计算溢出值
- Shell学习笔记(6)
- 芥末菌的算法笔记——递归与分治(二)二分搜索
- 黑马就业班第八天——request与response-readme
- 魔方如何自动求解?
- 欢迎使用CSDN-markdown编辑器
- for...in...循环
- IOS学习(五)UIImageView
- 区间树