当前位置:首页 » 服务存储 » 负数的存储状态
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

负数的存储状态

发布时间: 2023-01-13 12:10:57

❶ 负数在24c02中是怎么存储

  1. 负数在24c02中是以补码方式存储的,和在内存储器中是一样的。

  2. 2402一个地址存8位,在存16位数的时候应该8位8位的存,具体的方法是:

    把a的高八位右移八次变成低八位后强制将他转化成一个unsigned char 写入相应地址;然后将低八位强制转换成unsigned char 再次写入。

    读取的时候先读取高八位放入一个unsigned int中,unsigned int左移八位后或上再次读取出的低八位。

❷ 二进制中的负数在计算机的储存方式

二进制的储存中都是用的补码,正数的原码、反码和补码相同,负数的原码是最高位为1,反码最高位不变,其余各位取反,补码为其反码+1。比如说:-1的原码是10000001(省略几个零),反码是11111110,补码就是11111111。~_~我现在C语言学得很好的哦,问我就不会错了。

❸ 正数和负数在内存中是以什么形式存储的,都是补码 为什么呢

正数和负数在内存中是以什么形式存储的,都是补码? 为什么呢?

----------------------

为什么采用补码?

最终目的,就是为了“简化硬件”。

其实,补码,还是很好理解的。

但是,从“原码反码取反加一”开始学,就理解不了了。

----------------------

计算机,每次进行计算,位数,是固定的。

八位的计算机,参加计算的,就只有八位二进制数。

16 位机、32 位机、64 位机 ...,也都是雷同的。

那么:

数值 0,八位机存放的是:0000 0000,这没有疑问吧?

数值 +1,就是 0+1。即:0000 0001,你可以理解吧?

数值-1,那显然就是 0-1 了。

你用二进制算算看,差,是多少?

忽略借位,八位的差,就是:1111 1111 (十进制 255)。

255,这就是被称为:-1 的补码。

数值-X,怎么存放?

那就按照 0-X 算呗!肯定可以得出这种正数的结果。

负数(-X) 的补码,一定是个正数。

---------------------

补码,是一个“代替负数计算”的正数。

这说法,对吗?

你可以验算一下。

比如,等式:1-1 = 0,显然是成立的。

转换为补码:[+1]补 + [-1]补 = [0]补,也必须成立。

代入数值,计算如下:

0000 0001+1111 1111 = (1) 0000 0000

你舍弃了进位,这等式就成立了。

这说明:

用补码(正数),就可以代替负数。

同时,加法,也就代替了减法运算。

但是,进位,必须舍弃。

另外,正数和令,就不存在转换成补码的问题了。

当然,也可以说,正数,本身就是补码。

采用了补码之后,就能简化算法,由此也就可以简化硬件。

---------------------

常见的问题:为什么数据在内存里是以补码的形式存储?

正确答案是:简化算法,从而简化硬件。

这也就是:补码存在的意义。

补码的理论,就是这么简单。

老外算术不行,二进制运算,弄不利索。

这才编造了“原码反码取反加一符号位不变”。

而计算机中,根本就不用原码和反码。

我们的计算机老师脑子不好用,被老外骗得滴溜滴溜转。

跟着老外绕了老大一圈,也讲不明白“补码的存在意义”。

学生学完了,也不知道:为什么数据在内存里是以补码的形式存储?

------------------------

如果已知计算机的二进制数,怎么求它代表的数值呢?

数值,小学学过为两类:自然数、整数。

自然数,即 0 ~ ∞,在计算机中,称为:无符号数。

整数,包括“正整数负整数和零”,称为:带符号数。

计算机中的 n 位二进制数,每一位,都对应一个十进制数。

如果 n = 8,每一位对应的十进制数则是:

128、64、32、16、8、4、2、1。

注意:其中的最高位,对于“带符号数”来说,则是-128

-------------

例如,一个八位的补码是:1000 1011。

如果是“带符号数”,其首位,就是-128

其余的位,都是正数。

那么,各位之和,就是:128 + 8 + 2 + 1 = 117。

如果是“无符号数”,其首位,就是 128。

各位之和,就是:128 + 8 + 2 + 1 = 139。

--------------

例如,另一个八位的补码是:0000 1011。

首位是 0?这就不用关心有无符号了。

其代表的数值,就是:8 + 2 + 1 = 11。

❹ 负数在内存中的二进制形式怎样存储

负数在内存中是以补码的形式储存的,先写出该负整数的原码,然后将原码除符号位以外的各位取反,得到反码,再将反码加一,得到补码,即为该负数的二进制储存形式