数字系统,运算,代码

本文详细介绍了十进制和二进制的基本概念,包括它们之间的转换方法,如sum-of-weight和repeatdivision/multiplicationby2。此外,还涵盖了二进制补码、有符号数的表示及运算,以及BCD编码、格雷码和字母数字代码如ASCII的应用,最后讨论了错误检测技术如奇偶校验和CRC。
摘要由CSDN通过智能技术生成
一,不同进制的数字
(一)一些示例

            1,十进制(Decimal):例如 23=2*10+*1

            2,二进制(Binary):例如 11=1*2+1*1=3

(二)计算二进制

1,最大的十进制数可以用n位表示:2^n-1

2,MSB:最高有效位

3,LSB:最小有效位

4,十进制向二进制转换:

  • sum-of-weight method

           例如:对于19: 19=2^4+2+1=10011

  • repeat division/multiplication by 2 method

           如果数大于一,反复除二直至0,每一次的余数组成结果,MSB是最后一个余数,LSB是第             一个余数。

           例如:19/2=9...1,  9/2=4...1,  4/2=2...0,  2/2=1...0,  1/2=0...1    ------->10011

           如果数小于一,反复取小数部分乘二直至1,每一次的整数部分组成结果,MSB是第一个,             LSB是最后一个。

           例如:0.3125*2=0.625-->0,  0.625*2=1.25--->1,  0.25*2=0.50--->0,  0.50*2=1--->1

           ---------->0101

5,二进制计算规则

  • 加法:1+1=10, 1+0=1, 0+0=0
  • 减法:1-1=0, 10-1=1, 0-0=0, 1-0=0
  • 乘法:1*1=1, 1*0=0, 0*1=0, 0*0=0

6,二进制补码(Complements):

  • 1's complements:每一位数字都与原二进制数字相对位相反(如11010--->00101)
  • 2's complements:

                 方法一:在1‘s complements的基础上加一的结果

                 方法二:从二进制数的LSB开始,找到第一个包含1的位,然后取剩余位的1‘s                                 complement。

7,记号位(signed numbers):

  • 符号量值形式:

        符号位:0->正数,1->负数

  • 1‘s complements

        用8位来表示-25

        25: 0 0 0 1 1 0 0 1

       -25: 1 1 1 0 0 1 1 0

  • 2's complements:

       -25: 1 1 1 0 0 1 1 1

  • 范围

       对于n位数字:[-2^(n-1) , +2^(n-1)-1]

  • 加法

        1,将十进制数转换为带有负数的二进制形式,以2's complement形式表示

        2,执行二进制加法

        3,符号:如果两个数都是正(负)→结果为正(负)。否则,溢出表明结果为正。

  • 减法

        1,改变减数的符号并将数字相加
        2,如果减数是二进制格式 → 2 's complement

  • 乘法

        1,如果乘数很大,则非常冗长
        2,两个数字必须为真(未补)形式。

        部分积
        1,同号→正
        2,不同符号 → 负数

  • 有符号数除法

        1,计算机中的除法运算是使用减法完成的。
        2,商和余数
                ◆ 何时停止减法:
                         余数为零或负数

                ◆ 商:执行减法的次数

        3,商的符号

                ◆ 同号→正

                ◆ 不同符号 → 负数

        4,求商的步骤

               1,取除数的2's complement(取负值)

               2,重复加法运算直至不能继续

               3,累加计算次数,取次数的二进制数即商

  • 浮点数:用尾数和指数表示的浮点数(32位)
二,编码
(一)二进制编码十进制(BCD)
  • 定义:用二进制数字表示每一位的十进制数字
  • BCD向十进制的转换:从最右边的位开始,将代码分成四位一组
  • BCD加法:1. 使用二进制加法规则将两个 BCD 数相加。2. 如果 4 位和 ≤ 9 → 有效 BCD 数。3. 否则,将 6 (0110) 添加到 4 位和中
(二)格雷码(Gray Code)

1,定义:从一个代码字到下一个代码字顺序只有一位发生变化

2,Binary   <=> Gray code: 

         Binary到Gray code:

        Gray code到Binary:

     

3,使用格雷码对传输符号进行编码
◆ 发射机发送四个符号之一;
◆ 传输的符号因噪声而失真;
◆ 接收器尝试解码失真的符号;
◆ 符号检测错误的概率与符号距离成反比

(三)字母数字代码

例如:ASCII:美国信息交换标准代码

(四)错误代码:

1,用于错误检测的奇偶校验位:奇偶校验位附加到一组位上,以使一组中 1 的总数始终为偶数或始终为奇数。

2,循环冗余检查(CRC):一种错误检测方法,可以检测数据块中的多个错误

            在发送端,校验和被附加到数据块中。

            在接收端,生成校验和并与发送的校验和进行比较。 如果校验和为零,则未检测到错误。

图片来自书籍:Digital_Fundamentals_11ed_by_Thomas_L.Floyd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值