永发信息网

C语言2的取反为什么是-3,怎么算的?正数的原码反码不是不变吗??

答案:3  悬赏:40  手机版
解决时间 2021-02-22 09:26
C语言2的取反为什么是-3,怎么算的?正数的原码反码不是不变吗??
最佳答案
假设2以一个字节存储,则其补码为:00000010(正数的原码和补码是一样的),则取反后得到11111101这么一个补码,将这个补码转换成原码得到的结果就是-3了。转换过程如下:
11111101--将该数减1求反码得 11111100--除符号位外每位取反求原码得10000011,最高位表示符号位
全部回答
取反是一种运算,而你说的原码反码补码是数字的表示方法,是两个不同的概念,十进制的2用二进制表示原码是0000 0010 补码0000 0010,而对十进制的2取反就是取反不是说变成反码。 数字在计算机里是以补码的形式存储,2在计算机里是00000010,取反就是谁说的正数的反码不变。通常来说,是正数没得反码和补码这一说,因为正数的编码都是原码,也就不存在正数的反码。将正数取反得到的结果是完全的另一个数。 数字编码方式无论哪种编码,都是为了代表一个数并且便于运算。我甚至可以指定00000001来代表数学上的2,00000010来代表5。我可以任意做影射关系,就像ASCII码一样,你说凭什么13就代表换行,10代表回车,我用5代表回车就不行?答案是当然行,如果你够牛,能改变标准就行。说白了就是一个影射而已,我想怎么影射都可以,只是前人已经制定了那样的标准,我们学习的时候,要试图去理解,前人为什么呀要那样制定标准,好处是什么。
计算机内不是用原码表示的,它是用“补码”表示的 正数的反码=原码=补码,不等于按位取反。C语言内部的取反也不是“反码”。反码的定义是针对负数的,负数反码表示:1,符号位为1,2。除了符号位之外按位取反等于它的相反数。可见它和C语言的取反也不一样
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海摄影器材产业园我想知道这个在什么地方
择字篆书怎么写
造化钟神秀阴阳割昏晓两句诗表现了泰山怎样的
请问男生左眼一直跳是怎么回事啊?
qmc5883怎么处理磁场干扰
如图是某同学在显微镜下观察到的金鱼尾鳍内血
御园东门自行车租赁点怎么去啊,有知道地址的
圆锥截面所成曲线为什么是双曲线?
如何自制荷塘泥
金国、辽国、元朝他们到底是不是一个国家??
24乘8等于192是怎么算出来的
航嘉jumper450s 和航嘉super600n哪个好
新车磨合期跑了300公里前盖里有烧焦味
如何检查linux是否安装了jre
招生计划数与一志愿上线人数问题
推荐资讯
美妙·天然玉石大理石背景怎么去啊,有知道地
靖远王老四羊羔肉餐厅这个地址在什么地方,我
雪芙丽妍有改善毛孔粗大的作用吗?
焦斌回家宾馆地址在哪,我要去那里办事,
【2015广一模】Cloze2(2015广东肇庆一模)Theh
比博美犬大点、耳朵是趴下的是什么狗
四季伊人美容养生馆怎么去啊,有知道地址的么
非婚生子女可以继承父亲再婚的妻子的婚前个人
权记横沥汤粉怎么去啊,有知道地址的么
大门口宽3.6米高度4米几为吉数
新百味海鲜自助烤肉火锅地址在哪,我要去那里
紧凑的反义词是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?