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

本文共 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

你可能感兴趣的文章
Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议
查看>>
oracle 优化——索引与组合索引
查看>>
android基础—尺寸单位和屏幕适配
查看>>
小试 ScriptManager
查看>>
异常处理
查看>>
C/S模型之消息传输
查看>>
一道int与二进制加减题
查看>>
Java中输入判定的错误和纠正
查看>>
详解Nginx 13: Permission denied 解决方案
查看>>
InPlace Transition of a matrix
查看>>
Project Euler 26 Reciprocal cycles( 分数循环节 )
查看>>
做了几道简单的基础题,慢慢熟悉循环
查看>>
元素的多种延时等待(&页面的超时处理)
查看>>
ios 后台发送邮件之SKPSMTPMessage的使用
查看>>
JavaScript学习
查看>>
3014C语言_运算符
查看>>
202702算法_二分法查找
查看>>
Win10 UWP开发实现Bing翻译
查看>>
各种不同类型的类
查看>>
mvc4 -@Html.Partial,@Html.RenderPartial
查看>>