- N +

word中怎么添加补码下标(word2010添加补码下标怎么操作)

word中怎么添加补码下标(word2010添加补码下标怎么操作)原标题:word中怎么添加补码下标(word2010添加补码下标怎么操作)

导读:

《大数据与人工智能通讯》头条为初学者添加了C、Java、Python、Scala、javascript等流行的计算机和大数据编程语言。希望大家以后多多关注本标题的更多内容。原码、补码、反码详解1.机器编号和真值在学习原码、补码和补码之前,需要先了解机器数和真值的概念。1、机器数量数字在计算机中的二进

《大数据与人工智能通讯》头条为初学者添加了C、Java、Python、Scala、javascript等流行的计算机和大数据编程语言。希望大家以后多多关注本标题的更多内容。

原码、补码、反码详解

word中怎么添加补码下标(word2010添加补码下标怎么操作)

1.机器编号和真值

在学习原码、补码和补码之前,需要先了解机器数和真值的概念。

数字在计算机中的二进制表示形式称为该数字的机器号。机器编号已签名。在计算机中,数字的最高位用于存储符号。正数为0,负数为1。

例如,十进制数字+3的计算机字长为8位。转换成二进制后为。如果为-3,则为。

所以,这里的和是机器号。

2.真实价值

因为第一位是符号位,所以机器号的形式值不等于实际值。例如上面的有符号数,最高位1代表负数,其实际值为-3,而不是形式上的值131。因此,为了区分,将带有符号位的机器号对应的真实值称为机器号的真实值。

示例:的真实值=+=+1,的真实值==1

2、原码、补码、补码的基本概念及计算方法。

在探讨机器为什么使用补码之前,我们先来了解一下原码、补码和补码的概念。对于一个数字,计算机必须使用一定的编码方式来存储它。原码、补码和补码是机器存储的特定数字的编码。

1.原始代码

原码是符号位的绝对值加上真值,即第一位代表符号,其余位代表数值。例如,如果是8位二进制:

[+1]原始=

[-1]原始=

第一位是符号位。因为第一位是符号位,所以8位二进制数的取值范围是:

[,]

现在

[-127,127]

原始代码是人脑最容易理解和计算的表示形式。

2.反码

其补码表示形式为:

正数的补码是它本身

负数的补码以其原码为基础,符号位不变,其余位取反。

[+1]=[]原值=[]逆值

[-1]=[]原始=[]逆

可见,如果补码代表负数,人脑无法直观地看到它的值。通常需要将其转换为原始代码,然后进行计算。

3.补码

补码的表示方法为:

正数的补码是它本身

负数的补码在其原码的基础上,符号位不变,其余位取反,最后+1。

[+1]=[]原值=[]逆值=[]补码

[-1]=[]原=[]逆=[]补

对于负数,人脑无法直观地看到二进制补码表示中的值。通常还需要将其转换为原始代码来计算其值。

3、为什么要用原码、反码、补码?

在开始深入学习之前,我的学习建议是熟记上面的原代码、补码和补码的表示以及计算方法。

现在我们知道计算机可以用三种编码方法来表示数字。对于正数,三种编码方式的结果是相同的:

[+1]=[]原值=[]逆值=[]补码

所以没必要解释太多。但对于负数:

[-1]=[]原=[]逆=[]补

可以看出,原码、补码和补码是完全不同的。既然原码是人脑直接识别并用来计算表示的,那为什么还存在补码和补码呢?

首先,因为人脑可以知道第一位是符号位,所以在计算时我们会根据符号位来选择对真值区域进行加法和减法。。但对于计算机来说,加法和减法乘法器已经是最基本的运算了,应该设计得尽可能简单。计算机能够识别‘符号位’显然会让计算机的基本电路设计变得非常复杂!于是人们想出了在运算中包含符号位的方法。我们知道,根据算法,减去一个正数相当于加上一个负数,即:1-1=1+(-1)=0,所以机器只能加不能减,所以设计计算机操作更加简单。

于是人们开始探索如何让符号位参与运算而只保留加法。首先我们看一下原始代码:

计算十进制表达式:1-1=0

1-1=1+(-1)=[]原始+[]原始=[]原始=-2

如果用原码来表示数字,并且符号位也参与计算,显然减法的结果是错误的。这就是为什么计算机内部不使用原始代码来表示数字的原因。

为了解决原码相减的问题,出现了反码:

计算十进制表达式:1-1=0

1-1=1+(-1)=[]原值+[]原值=[]逆值+[]逆值=[]逆值=[]原值=-0

发现用补码进行减法运算时,结果的真值部分是正确的。唯一的问题实际上发生在特殊值“0”上。虽然人们理解+0和-0是相同的,但是0是有符号的,它没有任何意义。而且,会有两个代码,[]original和[]original,来表示0。

所以补码的出现解决了0和:这两种编码的符号问题

1-1=1+(-1)=[]原件+[]原件=[]补码+[]补码=[]补码=[]原件

这样,0就用[]来表示,之前引起问题的-0就不存在了。可以表示为[]-128:

(-1)+(-127)=[]原+[]原=[]补数+[]补数=[]补数

-1-127的结果应该是-128。在补码运算的结果中,[]的补码是-128。但注意,因为前面的-0的补码实际上是用来表示-128的,所以-128没有原码和补码表示。

使用补码不仅解决了0的符号和存在两种编码的问题,而且还可以多表示一个最小数。这就是为什么原码或补码表示的8位二进制的范围是[-127,+127],而用补码表示的范围是[-128,127]。

因为机器使用的是二进制补码,所以对于编程中常用的32位int类型来说,因为第一位代表的是符号位,所以可以表示的范围是:[-231,231-1]。当使用二进制补码表示时,多保存一个最小值。

四原码、反码、补码及更深入

计算机巧妙地将符号位参与到运算中,将减法变成了加法。它背后有什么样的数学原理?

将时钟视为一位十六进制数。如果当前时间是6点,我想将时间设置为4点,该怎么办?我们可以:

1.回拨2小时:6-2=4

2.向前拨10小时:(6+10)mod12=4

3.向前拨10+12=22小时:(6+22)mod12=4

2,3法中的mod指的是模运算,16mod12=4,即16除以12后的余数为4。

所以将时钟向后转动的结果可以用向前转动来代替!

现在的重点是如何用正数代替负数。从上面的例子中,我们可以感受到一些端倪,发现一些规律。但数学是严谨的。我们不能依靠感觉。

首先介绍一下数学中的一个相关概念:同余

一致性的概念

如果两个整数a和b除以整数m所得的余数相等,则称这两个整数a和b模m全等。

写为a==b(modm)

读作a和b模m全等。

示例:

4模12=4

16模12=4

28模12=4

所以4、16、28模12全等。

模负数

修改正数很容易。但是负数呢?

以下是mod运算:的数学定义

上面是截图。我找不到如何输入“删除边界”符号。下面是用'L'和'J'来代替上图:中的'removebounds'符号

x模y=x-yLx/yJ

上式的意思是:

xmody等于x减去y乘以x和y的商的下限。

以-3mod2为例:

-3模2

=-3-2xL-3/2J

=-3-2xL-1.5J

=-3-2x(-2)

=-3+4=1

所以:

(-2)模12=12-2=10

(-4)模12=12-4=8

(-5)模12=12-5=7

开始证明

回到时钟问题:

向后2小时=向前10小时

向后拨4小时=向前拨8小时

向后拨5小时=向前拨7小时

注意,这里发现的模式!

结合上面学到的同余的概念。事实上,

(-2)模12=10

10模12=10

-2和10一致。

(-4)模12=8

8模12=8

-4和8一致。

我们离成功越来越近了。要将负数替换为正数,我们只需应用同余数的两个定理:

反身性:

a=a(modm)

这个定理是非常明显的。

线性运算定理:

如果a=b(modm),c=d(modm)则:

(1)ac==bd(modm)

(2)a*c==b*d(modm)

如果你想看这个定理的证明,请看:

所以:

7=7(模12)

(-2)==10(模12)

7-2==7+10(模12)

现在我们求负数的正同余。但不是7-2=7+10,而是7-27+10(mod12),即计算结果的余数相等。

接下来我们回到二进制问题,看看:2-1=1的问题。

2-1=2+(-1)=[]原值+[]原值=[]逆值+[]逆值

让我们先进行这一步。-1的补码表示为。如果将[]视为原码,则[]原来=-126。这里去掉了符号位,认为是126。

发现以下规则:

(-1)模127=126

126模127=126

那是:

(-1)==126(模127)

2-1=2+126(模127)

2-1和2+126的余数结果是一样的!而这个余数就是我们期望的计算结果:2-1=1

所以一个数的补码实际上是这个数与膜的同余。而这个膜并不是我们的二元系统,而是能够表示的最大值!这就好比一个钟表,旋转一圈后总能在可表示的范围内找到正确的值!

而2+126显然相当于时钟转了一圈,而且由于符号位参与计算,正好与溢出的最高位形成正确的运算结果。

既然补码可以把减法变成加法,那么现在计算机使用的补码呢?为什么补码加1还能得到正确的结果呢?

2-1=2+(-1)=[]原+[]原=[]补数+[]补数

若将[]视为原码,去掉符号位,则为:

[]原始=127

事实上,基于反码的+1只相当于将膜的值增加:

(-1)模128=127

127模128=127

2-1==2+127(模128)

此时表盘相当于每128个刻度转一圈。因此,用补码表示的运算结果的最小值和最大值应为[-128,128]。

但由于0的特殊情况,没有办法表示128,所以补码的取值范围是[-128,127]

《大数据与人工智能传播》的宗旨

1.让大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2.使大数据和人工智能专业涉及的数据结构和算法:分类、聚类、回归算法、概率等算法通俗易懂。

3.最新高科技趋势:数据采集中的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等

根据初学者的需求,目前主流的计算机语言有C语言、Java语言、Python语言、Scala函数式语言等。

根据读者的需要,有与人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科的通俗易懂的文章。

返回列表
上一篇: 生活常识的出题,生活常识的出题方法
下一篇: 生活常识儿童故事,幼儿生活常识故事