Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数字IC笔试题(6)——C语言有符号数和无符号数【原码、反码、补码】【格式转换】

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

作者头像
FPGA探索者
发布于 2021-10-25 08:29:21
发布于 2021-10-25 08:29:21
1.3K0
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个案例搞懂原码、反码、补码,不懂得请看过来
根据冯~诺依曼提出的经典计算机体系结构框架。一台计算机由运算器,控制器,存储器,输入和输出设备组成。其中运算器,只有加法运算器,没有减法运算器(据说一开始是有的,后来由于减法器硬件开销太大,被废了 )
用户7656790
2020/08/13
1.2K0
一个案例搞懂原码、反码、补码,不懂得请看过来
Verilog学习笔记——有符号数的乘法和加法
编写程序如下,其中,乘法的两个乘数分别是无符号、有符号的四种组合,输出的积也是分为无符号和有符号,共计 8 种可能;
FPGA探索者
2021/03/15
8.4K0
数字逻辑基础:原码、反码、补码
以3为例,+3对应的二进制数是00000011,-3对应的二进制数是10000011。
WuShF
2023/03/01
7020
数字逻辑基础:原码、反码、补码
反码补码和位运算
三者是计算机存储数据的不同形式,计算机用补码存储数据。而且计算机利用这三者可以用加法实现减法
晚上没宵夜
2020/04/24
6750
【C语言笔记】关于有符号数与无符号数的一些总结
原因是因为编译器会将有符号数b转换成为一个无符号数,即此处a+b等价于a+(unsigned int)b。
正念君
2019/06/26
4.2K0
【C语言笔记】关于有符号数与无符号数的一些总结
深度理解 原码, 反码, 补码
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8
互联网金融打杂
2018/04/03
1.1K0
深度理解 原码, 反码, 补码
原码,反码,补码的深入理解与原理答案_原码反码补码例题详解
本文从原码讲起。通过简述原码,反码和补码存在的作用,加深对补码的认识。力争让你对补码的概念不再局限于:负数的补码等于反码加一。
全栈程序员站长
2022/09/29
8230
原码,反码,补码的深入理解与原理答案_原码反码补码例题详解
C语言:数据在内存中的存储
三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,⽽数值位最 ⾼位的⼀位是被当做符号位,剩余的都是数值位。
逆向-落叶
2024/10/28
1270
C语言:数据在内存中的存储
【C语言】数据类型存储、原码,反码,补码
 如何看待内存空间的视角:int的类型创建一个变量(a),占了4个字节, float类型创建一个变量(b),同样也只是占了仅仅4个字节的空间。但是给变量a的是格式符%d是一个整形,而给变量b的是格式符%f是一个单精度浮点型。
謓泽
2022/12/12
6210
【C语言】数据类型存储、原码,反码,补码
一文读懂原码、反码与补码
二进制和十进制一样,也是一种进位计数制,但是它的基数是 2。二进制表达式中 0 和 1 的位置不同,它所代表的数值也不同。例如,二进制数 0000 1010 表示十进制数 10。一个二进制数具有两个基本特点:两个不同的数字符号,即 0 和 1,逢二进一。
阿宝哥
2020/01/14
3.1K0
一文读懂原码、反码与补码
计算机原码反码补码怎么算_-35的原码反码补码
最近花了点时间对计算机的原码,反码和补码进行了研究,对为什么要有反码和补码以及他们这么设计的原因有了一定的理解
全栈程序员站长
2022/08/03
9280
计算机原码反码补码怎么算_-35的原码反码补码
原码、反码、补码详解
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为 0,负数为 1。
马修
2021/01/21
1K0
计算机基础(4)——原码、补码、反码
计算机为了区分数值的正负提出了符号位的设定,计算机用最高位存放符号,这个被称为符号位。正数的符号位为0, 负数的符号位为1。
绿水长流z
2025/01/03
2190
计算机基础(4)——原码、补码、反码
原码、反码、补码的正(nao)确(can)打开方式
IT可乐
2018/01/04
1.3K0
原码、反码、补码的正(nao)确(can)打开方式
【C语言】数据在内存中的存储
不同的数据在内存中的存储形式是不同的,而当我们掌握数据在内存中的存储形式之后,会帮助我们更加了解计算机深层工作原理 废话不多说,我们接下来直接进入正题
举杯邀明月
2023/04/12
1.1K0
【C语言】数据在内存中的存储
基础野:细说原码、反码和补码
Brief                                说来惭愧虽然刚接触计算机时已经学过原码、反码和补码的内容,但最近重温时却发现“这是什么鬼东西”,看来当初只是应付了考试了而已。本篇将试图把他们说个明白,以防日后自己又忘记了。   在深入之前,我们先明确以下几点:   1. 本篇内容全部针对有符号数整数;   2. 对于有符号数整数,其在计算机中的存储结构是 符号位 + 真值域。其中符号位为0表示正数,1表示负数;   3. Q:既然已经有原码,那么为什么还要出现反码、补码等数值的编码
^_^肥仔John
2018/01/18
1.5K0
正数、负数和补码_正数原码反码补码
计算机中,正数、负数是怎么区分的呢,如何存放正数和负数?这里,就要用到补码这个概念了,先给出结论吧:正数和负数在计算机其实都是使用补码来存放的,并且在计算机中是没有减法运算的,减法实际上就是补码直接相加。
全栈程序员站长
2022/11/17
1.9K0
为什么计算机中的负数要用补码表示?
在前面的文章里,我们聊到了计算机的冯·诺依曼架构的 3 个基本原则。其中第 1 个原则是计算机中所有信息都是采用二进制格式的编码。也就是说,在计算机中程序的数据和指令,以及用户输入的所有数据,计算机都需要把它们转换为二进制的格式,才能进行识别和运算。
用户9995743
2022/12/22
3.2K0
为什么计算机中的负数要用补码表示?
C语言:进制转换以及原码、反码、补码
         其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法,那是什么意思呢?其实2进制、8进制、10进制、16进制是数值的不同表⽰形式⽽已。
小陈在拼命
2024/02/17
7400
C语言:进制转换以及原码、反码、补码
【C语言】操作符详解1(含进制转换,原反补码)
    上述的操作符,我们已经讲过算术操作符、赋值操作符、逻辑操作符、条件操作符和部分的单⽬操作符,今天继续介绍⼀部分,操作符中有⼀些操作符和⼆进制有关系,我们先铺垫⼀下⼆进制的和进制转换的知识
TANGLONG
2024/10/15
2540
【C语言】操作符详解1(含进制转换,原反补码)
推荐阅读
相关推荐
一个案例搞懂原码、反码、补码,不懂得请看过来
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档