前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数字IC笔试题(6)——C语言有符号数和无符号数【原码、反码、补码】【格式转换】

数字IC笔试题(6)——C语言有符号数和无符号数【原码、反码、补码】【格式转换】

作者头像
FPGA探索者
发布2021-10-25 16:29:21
1.2K0
发布2021-10-25 16:29:21
举报
文章被收录于专栏:FPGA探索者FPGA探索者

(数字IC中,对C语言的考察比较多,输入输出/进制转换/文件读写等)

unsigned char a = -1, char b = 44, int c =a+b

以上程序运行后,c=()

答案:299

解析:

【有符号+无符号】,按照2个都是无符号算。

除了加法外,只要运算中存在有符号操作数和无符号操作数混用,都是将操作数转成无符号算。

(1)unsigned char a = -1,8位补码表示-1,首先用7-bit表示1,000_0001,取反后111_1110,加1后111_1111,加上符号位1111_1111,如果用这个8位的二进制数来表示无符号数,为255

(2)char b = 44,本身就是正数,有符号中正数的原码、反码、补码相同,所以转成无符号数还是 44

(3)加法自动扩展成int去算,255+44=299

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA探索者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档