文章目录:
- 1、原码,反码,补码的作用和产生的原因是什么
- 2、要源码和补码到底是干什么呢,我实在搞不懂
- 3、C程序设计中为什么有原码,反码,补码的存在?它们各有何意义?
- 4、为什么要有原码、反码和补码?
- 5、原码,反码,补码各有什么作用呀
- 6、既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家
原码,反码,补码的作用和产生的原因是什么
原码和反码,没有任何意义。
计算机中,也没有原码反码。
正负数字,存放在计算机中,就称为:补码。
正数,就直接以二进制存放。
负数,则需要变换一下,再存放。
--------------
如果,仅使用两位十进制数,就是 00~99,共有 100 个数字。
减一,就可以用 +99 代替:
28 - 1 = 27
28 + 99 = (1) 27
忽略进位,结果就是相同的。
于是,99,就是-1 的补数;
同理,98,就是-1 的补数;
利用【补数】,就可把“相减”运算,改为“相加”。
利用【补数】,就可把“负数”改为“正数”。
对于“-1”,其对应的【补数】就是:100-1 = 99。
-------------
计算机中,没有数字。1 和 0,都是代码。
八位二进制代码,称为一个字节。
0000 0000~1111 1111,共有 256 个代码。
-1,就可以用 256- 1 = 255 (=1111 1111) 代替,
-2,就可以用 256- 2 = 254 (=1111 1110) 代替,
那么,1111 1111 就称为-1 的补码;
同理,1111 1110 也就是-2 的补码。
-------------
计算机中,只有加法器,没有减法器。
做减法运算,必须使用【补码】,用加法来操作。
补码的定义式,如下:
正数的补码,就是该数字本身。
负数的补码,就用“模”,加上该负数,即可。
求补码,并不需要学习“原码反码符号位 ”这些垃圾知识。
要源码和补码到底是干什么呢,我实在搞不懂
正数的原码,反码,补码相同,没有变化。
负数才有 原码,反码,补码 的区别。
负数,不考虑符号位外的各位,按位取反,(1变0,0变1),就成反码。
反码加1,就是补码。
电脑里负数用的是补码。
强调一下:负数才有 原码,反码,补码 的区别。
正0 -- 是正数。
负0 -- 是负数,有 原码,反码,补码 的区别。负数用的是补码。
负数用补码,使减法变加法做,计算机硬件有 加法器,用补码,直接用加法器做减法,速度快。
C程序设计中为什么有原码,反码,补码的存在?它们各有何意义?
计算机中,只有补码。 其意义,就是代表正负整数。
原码反码,根本就不存在。 它们毫无意义。
为什么要有原码、反码和补码?
原码、反码、补码,是机器数。
计算机内部的硬件电路较易实现用1(高电平)、0(低电平)表示数据的正、负,通常这个符号放在二进制数的最高位,称符号位。符号位与数值位共同参预运算。
机器数的记忆及运算,利于计算机硬件逻辑电路的设计与制造。
原码,反码,补码各有什么作用呀
正负数,在计算机中存放的格式,就是补码。
计算机中,并没有原码和反码,也就不必关心它们了。
下面,针对补码,给出解释。
比如,有一个小孩,很小的。
他只认识 100 个数(0~99),也不会做减法。
那么,就可以告诉他:“减一”,就用“加 99”算吧。
36 - 1 = 35
36 + 99 = (1) 35
忽略进位的 100,结果不是一样的吗?
那么,就是说:
99,就是-1 的补数。
98,就是-2 的补数。
。。。
利用“补数”,就可把“减法”转为“加法”。
利用这个特点,计算机中,仅需一个“加法器”,就够用了。
------------
在计算机中,是以二进制存放各种信息的,统称为:代码。
八位,作为一个计算单位。
范围是:0000 0000 ~ 1111 1111。
写成十进制,就是:0~255。
共有 256 个代码。--这个数字,称为:模。
那么:
1111 1111(255),就是-1 的补码。
1111 1110(254),就是-2 的补码。
。。。
1000 0000(128),就是-128 的补码。
求负数的补码,就是这么简单。
而零和正数,直接参加运算即可,用不着求补码。
因此,下面就是补码的定义式。
零和正数的补码: 就是该数字本身。
负数的补码: 就用“模”,加上该负数。
模,就是代码的总个数。
---------
原码和反码,则毫无意义。
所以,在计算机中,并没有它们的存在。
既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家
在计算机系统中,数值,一律用补码表示和存放。
补码,就是一个代替负数运算的正数。
借助于补码,就是用正数代替负数来进行运算。
借助于补码(正数),减法,也就可用加法来代替。
正数,怎么就能代替负数呢?
且看 2 位 10 进制:
24 - 1 = 23
24 + 99 = (一百) 23
只取两位结果,舍弃进位,这两种算法,功能就是相同的。
此时,+99 就能当做-1 使用。
同理,+98 就能当做-2。
。。。
这些正数,就是负数的补数。
补数的定义式:补数 = 负数 + 10^2。
因此,借助于补数,就能用加法来实现减法运算。
------------------
计算机用二进制,补数,就改称:补码。
8 位 2 进制,范围是:0000 0000~1111 1111。
用十进制来说明,就是:0 ~ 255。
补码的定义式,就是: 补码 = 负数 + 2^8。
-1 的补码:-1 + 2^8 = 255 ( = 1111 1111)。
-2 的补码:-2 + 256 = 254 ( = 1111 1110)。
。。。
-128 的补码:-128 + 256 = 128 ( = 1000 0000)。
-----------------
借助于补码,可用加法来实现减法。
这样就统一了加减法。由此就可以简化计算机的硬件。
原码、反码,都没有这种功能。
因此,原码和反码,都没有任何存在的意义。
所以,在计算机中,并没有原码和反码。数值,一律采用补码表示和存储。
】就是:100-1 = 99。-------------计算机中,没有数字。1 和 0,都是代码。八位二进制代码,称为一个字节。0000 0000~1111 1111,共有 256 个代码。-1,就可以用 256- 1 = 255 (=1111 1111) 代替,-2,就可以用 256- 2 = 2
。下面,针对补码,给出解释。比如,有一个小孩,很小的。他只认识 100 个数(0~99),也不会做减法。那么,就可以告诉他:“减一”,就用“加 99”算吧。36 - 1 = 3536 + 99 = (1) 35忽
文章目录:1、原码,反码,补码的作用和产生的原因是什么2、要源码和补码到底是干什么呢,我实在搞不懂3、C程序设计中为什么有原码,反码,补码的存在?它们各有何意义?4、为什么要有原码、反码和补码?5、原码,反码,补码各有什么作用呀6、既然计算机内部数据是以
原码,反码,补码各有什么作用呀6、既然计算机内部数据是以补码存储的,为什么还要有原码呢?原码和反码存在的意义是什么? 初学者请教大家原码,反码,补码的作用和产生的原因是什么原码和反码,没有任何意义。