当前位置:首页 > 经验 >

存储与运算都用二进制吗(为什么用二进制来存储数据)

来源:原点资讯(www.yd166.com)时间:2022-11-06 18:39:15作者:YD166手机阅读>>

无符号二进制整数的减法运算例子

上面的4个减法例子,都没有发生下溢(小于最小值0即负数),但两个【无符号二进制整数】相减是会发生下溢的,下溢后计算机硬件选择将溢出的位去掉,将剩下的所有位作为结果,如下图

存储与运算都用二进制吗,为什么用二进制来存储数据(9)

无符号二进制整数的下溢运算例子

【无符号二进制整数】下溢发生在一个小的数减去大的数,如上图01100011=99,10110000=176,99-176=-77,采用传统的运算,小数减去大数规则就是大数-小数即10110000-01100011,然后对结果加上符号,计算机不能这么算,因为这里是无符号运算,不能有负数,因此很多计算机硬件选择直接用01001101即77作为结果,忽略掉负号。

对于常见的程序语言c,c 是支持【无符号二进制整数】的,java没有【无符号二进制整数】,只支持【有符号二进制整数】,另外【无符号二进制整数】编码是唯一性的,不存在同一个【无符号二进制整数】对应不同的二进制编码。

1.2 【有符号二进制整数】的运算

【有符号二进制整数】的编码规则有3种即原码,反码,补码,在几乎所有的计算机硬件加减运算中采用的是补码,先上一个图来区分一下【无符号二进制整数】,原玛,反码,补码的区别,如下面的表格采用4位二进制。

二进制

无符号

原码

反码

补码

0000

0

0

0

0

0001

1

1

1

1

0010

2

2

2

2

0011

3

3

3

3

0100

4

4

4

4

0101

5

5

5

5

0110

6

6

6

6

0111

7

7

7

7

1000

8

-0

-7

-8

1001

9

-1

-6

-7

1010

10

-2

-5

-6

1011

11

-3

-4

-5

1100

12

-4

-3

-4

1101

13

-5

-2

-3

1110

14

-6

-1

-2

1111

15

-7

-0

-1

如上面的表格所示,同一个二进制采用不同的编码方式,表示的十进制数是不一样,另外,原码,反码,补码都可以表示【有符号二进制整数】,它们的最高位都是符号位,1表示负数,0表示正数,正数的编码都相同,负数的编码各个不同,下面来看看原码,反码,补码的定义。

原码:

最高位为符号位,1表示负数,0表示整数,剩余的位数按照【无符号二进制整数】转化为十进制,例如4位二进制数1001,最高位为1,剩余的位数为001按照【无符号二进制整数】转化为十进制就是1,所以结果为-1,原码的值的计算公式如下图

存储与运算都用二进制吗,为什么用二进制来存储数据(10)

原码值转化为十进制

以0001,0101,1011,1111为例子,按照上面公式计算如下图所示

存储与运算都用二进制吗,为什么用二进制来存储数据(11)

原码值转化为十进制例子

反码:

最高位为符号位,1表示负数,0表示整数,对于负数,剩余的位数取反后,再按照【无符号二进制整数】转化为十进制,例如4位二进制数1001,最高位为1,剩余的位数为001,取反后就是110,110按照【无符号二进制整数】转化为十进制就是6,所以结果为-6,反码的值的计算公式如下图

存储与运算都用二进制吗,为什么用二进制来存储数据(12)

栏目热文

八位二进制拨码图(二进制拨码图解)

八位二进制拨码图(二进制拨码图解)

容易让人糊涂的BCD码和十六进制BCD码(Binary-Coded Decimal‎)是二进制编码的十进制数的缩写,BC...

2022-11-06 19:25:55查看全文 >>

存储8位二进制信息(存储8位二进制的信息)

存储8位二进制信息(存储8位二进制的信息)

C语言支持的基本数据类型通过前面的举例分析,我们知道房子的类型,决定了房子的属性。例如,一房一厅的房子,有一个房间的空间...

2022-11-06 18:38:25查看全文 >>

二进制存储方式(进制转换计算器)

二进制存储方式(进制转换计算器)

实战:基于MongoDB文件服务器本节,我们将介绍如何基于MongoDB技术来存储二进制文件,从而实现一个文件服务器Mo...

2022-11-06 19:24:48查看全文 >>

二进制是怎样被读取出来的(通俗解释二进制)

二进制是怎样被读取出来的(通俗解释二进制)

信息时代,我们的生活离不开计算机。我们看到的视频、图片,阅读的文字、数字和符号、听到的音乐,其实都是一串由0和1组合的序...

2022-11-06 18:44:03查看全文 >>

二进制文件存放(二进制文件目录)

二进制文件存放(二进制文件目录)

来源:科技日报图片来源:DBMS Internals在我们的日常生活中,偶尔会出现这样的经历:辛苦下载的资料文件一不小心...

2022-11-06 18:41:46查看全文 >>

为什么以二进制存储(二进制存储是不是比较节省空间)

为什么以二进制存储(二进制存储是不是比较节省空间)

我们前段时间聊了牛顿与莱布尼茨的微积分之争,莱布尼茨所发明的符号被普遍认为更综合,适用范围更加广泛。作为17世纪最伟大的...

2022-11-06 18:40:02查看全文 >>

二进制对照表(二进制最简单的理解)

二进制对照表(二进制最简单的理解)

十进制二进制2的指数表示10000 00012^020000 00102^140000 01002^280000 100...

2022-11-06 19:15:31查看全文 >>

十进制转二进制口诀(二进制转十进制对照表)

十进制转二进制口诀(二进制转十进制对照表)

今天用两种方法来给大家解释一下如何把十进制数转换成二、十六进制数。方法一:口诀:除N取余,逆序排列。例1:K200=B?...

2022-11-06 19:14:14查看全文 >>

二进制存储(二进制怎么存储信息)

二进制存储(二进制怎么存储信息)

假设有一个需求是这样的:在200亿个随机整数中找出某个数是否存在其中?要求效率高,而且要节省内存。我们知道,在Java中...

2022-11-06 19:01:18查看全文 >>

计算机进制转换方法口诀(计算机进制转换最简单方法)

计算机进制转换方法口诀(计算机进制转换最简单方法)

你知道吗?我们用的阿拉伯数字是500年前的古人选定的版本,而十进制是几万年前原始人的选择。未来,我们还会一直沿用它吗?图...

2022-11-06 18:50:03查看全文 >>

文档排行