计算机中的二进制

一、计算机中为什么要用二进制?

因为我们的电脑里面都是由如下图所示这样的集成电路组成的,其中每一个引脚只有两种状态:通电(5V)和不通电(0V),我们用0来代表0V,用1来代表5V,二进制这样计数更方便。

二进制表示字符:一个52个字母(大小写加起来),我们用52个编号来分别对应一个字母

二进制表示图片:我们将图片分解为一个一个的小点形成点阵,但是这种只能表示非黑即白,如下图1所示。

                                                 图1

我们可以用下面的方式来显示有颜色的图片,存储的时候还是一个一个点来存储,在存储之前拿几个bit表示第几行第几列表示什么样的颜色,如图二所示。

                                                   图二

二、二进制是如何来运算的

1、二进制加法:逢2进1

2、二进制减法:变成补数再做加法运算

计算机中如何表示负数?

众所周知计算机里面有一长串的引脚,每一个引脚是一位(可存储一个二进制值),我们规定一个固定的长度(8、16、32位),最前面的一位表示符号位,其中0表示正数,1表示负数。

11000101 -> 对应的十进制数为 -69

虽然我们可以用上面的方法来表示负数,但是在计算的过程中会出现下图所示的一个问题。

这时我们就引出一个新的概念:补码

补码:规则为 先定长度(几位) 然后在正数(符号位后面表示的数值)的基础上取反加1得到正数相对应的负数

下图为计算128的补码

知道了如何表示补码,接下来我们用补码来进行减法运算

1001在计算机中实际存储的时候是以1111来存储的,下图为补数计算的过程

这样再进行计算

最后得到运算结果为2

总结:

1、因为计算机不会像我们人脑一样会用进位的方法来进行减法运算,故只能引入补数的方法来进行减法运算

2、想在计算机中确定一个数的话,我们首先要确定这个数的长度(8位、16位、32位、64位,长度将会决定你的数值范围,这里以8位来举例),如果这个数是正数的话,其8位全部表示的都是数值。如果是负数的话,用首位表示正或者负,其余位表示这个数,需要注意的是如果是负数的话,在存储的时候我们是以补码的形式来存储

3、0没有补码,0 的补码还是0

3、二进制的乘法:左移几位就等于乘以几个2,在左移过程中后面补全的时候用的是0

4、二进制的除法:原码:右移几位就是除以几个2,前面补0。补码:右移几位就是除以几个2,前面补1。图一为原码的右移操作,图二为补码的右移操作

                           图1

                              图2

逻辑右移:不看我们首位的是0还是1,我们都补0,存在的意义:比如图片中点阵的移动,我们只需移动不需要时刻判定它是个数值,故采用逻辑右移

算数右移:根据我们的首位的值 来确定我们是补0还是补1

专栏链接:https://blog.csdn.net/weixin_39903708/category_10358586.html

猜你喜欢

转载自blog.csdn.net/weixin_39903708/article/details/108410622
今日推荐