博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道关于位数扩充的题目
阅读量:6461 次
发布时间:2019-06-23

本文共 572 字,大约阅读时间需要 1 分钟。

先总结:整形比较小于int的会扩宽的int再比较, 而有符号数扩宽填充符号位, 无符号数填充0,

1.无符号数扩充

#include 
int main(void){ unsigned char a=0xe0; signed int b=a; printf("%u\n",b); printf("%x\n",b);}

运行结果为:

224e0

解析:因为a为无符号数,所以填充0,则在内存中b会变为

000000e0

2.有符号数扩充

#include 
int main(void){ signed char a=0xe0; signed int b=a; printf("%u\n",b); printf("%x\n",b);}

运行结果为

4294967264ffffffe0

解析:因为此时a为符号数,所以填充符号数,因为e0二进制表示为1110 0000,所以填充1,则b在内存表示为

ffffffe0

 

最后再强调一点,上述结果与b是否为有符号无关。

 

转载于:https://www.cnblogs.com/longzhongren/p/4359788.html

你可能感兴趣的文章
Android中的PID和UID
查看>>
MAC下上公司内网
查看>>
CentOS7.4安装mysql5.7
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>
判断一个数是否为素数的一个讨论(一)
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python学习——编程语言介绍
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
完美字符串
查看>>
zoom和transform:scale的区别
查看>>