计算机中的二进制

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

因为我们的电脑里面都是由如下图所示这样的集成电路组成的,其中每一个引脚只有两种状态:通电(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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个写代码的修车工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值