信息与编码(补码的作用)

数字量:在时间上和数量上都是离散、不连续的。(存在一个最小数量单位△)
模拟量:数字量以外的物理量。

可数的是离散的,不可数的是连续的。

电路的作用

  • 处理信息
  • 能量转换

信息编码

Impacts design at many levels

  • Mechanism (devices, #of components used)
  • Efficiency (bits used)
  • Reliability (noise)
  • Security (encryption)

Mechanism 机械
Efficiency 效率
Reliability 可靠性
Security 安全性

进制转换运算

image.png

补码

为什么需要补码?
如果使用原码进行运算,则会出现以下问题
image.png
-5+5不为0
所以需要补码来解决上述的问题。

首先看一个例子,例如生活中指针式手表,它是采用旋钮进行更改时间的,例如当前是指向的8点,如果想更改为7点钟,我们可以有两个操作
常规操作就是减1:8-1 = 7
但是我们想可以时钟是12进制的,那么是不是可以往前拨动,即 8+11(拨动11个位置) = 7
那么就是 8-1 等效于 8+11
本来是一个相减的问题变换成了相加的一个问题,那么我们所有的调整时间都可以采用相加的形式计算。
因为8-1和8+11的效果是等效的,更进一步的说,在目前进制下我们可以说-1的补码就是11,同理可得,-2的补码就是10,由此得出规律,负数的补码就是当前进制位下的最大值(钟表系统下是12)-补码数的绝对值

回归到上述引出的问题,那么得到+5的表示方式还是 00101,那么-5应该表示为什么呢?
符号位为1,因为它是个负数,后面采用上述的方法计算补码
1111为4位进制位下的最大数,即15
15-|-5| = 10
那么补码的后四位即是 10 = 1010
最后组合起来就是11010
上述是错的,为什么,因为在时钟系统里面是没有0时刻的,但是二进制十进制里面是有0这个数的,那么说明我们计算补码的时候需要多考虑一个数,那么,正确的计算应该如下所示:
15-|-5| = 10
10+1 = 11
那么补码的后四位即是 11 = 1011
最后组合起来就是11011
那么我们计算以下-5+5 =11011+ 00101 = 1 00000 ,这个时候是要舍弃最高位1的,因为这里采用5位,那么就得到了0,计算正确。

回归到计算机系统里面,为什么要舍弃最高位?
因为计算机里面的带宽是有限的,例如8位,32位,64位,他们一次只能计算这么长的位的数据,过大他们会舍弃最高位的数据,而小于带宽内的数据则肯定用不了这么多位,例如上述计算采用8位计算:
+5 = 00000101
-5 = 11111011
计算出来的结果任然是对的,而且由于补码的性质,说明我们在拓展位的时候,正数的补码应该前面补0,而负数的补码应该是前面补1。

image.png
image.png
image.png
image.png

注意系统选取的位数
计算补码的时候应该考虑系统的位,因为有些时候计算可能会超出当前系统的位数,导致计算出错,如下图所示:
image.png
注意计算最后最大是23,故要用6位,即注意答案的取值范围
5位会出错:
image.png

二进制的不对称性

二进制补码为什么不对称?
因为数值0占用了正数的位置(0000表示0,所以占用了位置),但是和无符号的表示的数字的量是一样多的

快速求二进制的补码

二进制原码取反+1
小数情况是加在最后一位

码制和数制(上述为数制)

image.png

等长编码的局限性

等长编码:用同样长度编码
image.png
余3码解决问题
image.png
进位缺陷~~,2+9, 8421不会落在8421码表里面,而余3码进位以后,剩余4位还是会落在余3码表里面~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值