计组——计算机中的数据

发布时间:2025-12-09 17:35:56 浏览次数:5

问题:数据如何在计算机中表示?
运算器如何进行数字运算和逻辑运算?

计组2.1

  • 1.进制转化:
  • 2. BCD码
  • 3.字符和字符串
      • 1.ASCII
      • 2.汉字编码
      • 3.字符串
  • 4.奇偶校验码
      • 1. 校验原理
      • 3. 奇偶校验
  • 5.汉明码
  • 6.循环冗余校验码

1.进制转化:

#mermaid-svg-r4SZl94APOX4UHKx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-r4SZl94APOX4UHKx .error-icon{fill:#552222;}#mermaid-svg-r4SZl94APOX4UHKx .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-r4SZl94APOX4UHKx .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-r4SZl94APOX4UHKx .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-r4SZl94APOX4UHKx .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-r4SZl94APOX4UHKx .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-r4SZl94APOX4UHKx .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-r4SZl94APOX4UHKx .marker{fill:#333333;stroke:#333333;}#mermaid-svg-r4SZl94APOX4UHKx .marker.cross{stroke:#333333;}#mermaid-svg-r4SZl94APOX4UHKx svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-r4SZl94APOX4UHKx .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-r4SZl94APOX4UHKx .cluster-label text{fill:#333;}#mermaid-svg-r4SZl94APOX4UHKx .cluster-label span{color:#333;}#mermaid-svg-r4SZl94APOX4UHKx .label text,#mermaid-svg-r4SZl94APOX4UHKx span{fill:#333;color:#333;}#mermaid-svg-r4SZl94APOX4UHKx .node rect,#mermaid-svg-r4SZl94APOX4UHKx .node circle,#mermaid-svg-r4SZl94APOX4UHKx .node ellipse,#mermaid-svg-r4SZl94APOX4UHKx .node polygon,#mermaid-svg-r4SZl94APOX4UHKx .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-r4SZl94APOX4UHKx .node .label{text-align:center;}#mermaid-svg-r4SZl94APOX4UHKx .node.clickable{cursor:pointer;}#mermaid-svg-r4SZl94APOX4UHKx .arrowheadPath{fill:#333333;}#mermaid-svg-r4SZl94APOX4UHKx .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-r4SZl94APOX4UHKx .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-r4SZl94APOX4UHKx .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-r4SZl94APOX4UHKx .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-r4SZl94APOX4UHKx .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-r4SZl94APOX4UHKx .cluster text{fill:#333;}#mermaid-svg-r4SZl94APOX4UHKx .cluster span{color:#333;}#mermaid-svg-r4SZl94APOX4UHKx p.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-r4SZl94APOX4UHKx :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}位置符号权重

所有 符号*位权 之和
十进制 D
基数:每个数码位不同符号的个数,r进制的基数为r
二进制 ——> 八进制
3位一组 因为111正好对应7
二进制 B ——> 十六进制 H/0x
4位一组 因为1111正好对应15
不足需要补位
十进制 ——> 其他进制

  • (整数部分)除以基数取余数法,第一次求得的余数权值为1(r^0) ,以此类推(r^1,2,3…)
  • (小数部分)乘以基数取整数法,第一次求得的整数权值为r^-1, 以此类推r^-2,-3… 注:用10进制表示的小数转化为其他进制有时只能求的一个近似值
  • 拼凑法,r进制的权值拼凑
  • 一般采用10进制 ——>2进制 ——> 其他进制
    数字实际存储到计算机中为机器数,1/0示正负号
  • 2. BCD码

  • 因为二进制表示为10进制很麻烦,因此有了BCD码,用4bit(16种状态)位表示10进制,因此由6位冗余
  • 8421BCD码,代表二进制的权值,BCD码有权码
    10进制的每一个数字可用一个8421码来表示,存储在计算机中,例如985在计算机中表示为1001 1000 0101
    8421码的运算:例如 0101+1000落在了非法区间1010~10010,因此需要加0110(6)进行修正 0001 0011
  • 余三码,8421码+(0011)B ,无权码
  • 2421码 ,有权码 为了防止编码的歧义,规定0~4首位为0,5 ~9首位为1

  • 3.字符和字符串

  • 英文字符在计算机中的表示
  • 中文字符在计算机中的表示
  • 字符串的存储
  • 1.ASCII

  • 数字,字母,符号 ——> 128个字符 ——> 7位二进制编码 ——> ASCII 用1byte表示 高位补0
  • 0~31 127用于控制和通信 DEL , ACK
  • 32~126 可印刷字符

    将数字0~9 字母a~z A~Z,对应的ASCII码用二进制表示发现,数字 0~9的ASCII前4个bit位相等, 后面的比特位对应0~9的BCD码,大写字母和小写字母前三个bit位相等,后面的比特位代表 1~26的二进制表示

    解:h的ASCII为104,二进制表示为01101000,a的ASCII为01100001,z的ASCII为01111010
  • 2.汉字编码

  • 区位码(94*94)二维数组 用区号(纵坐标)和位置号(横坐标)(横纵坐标)对应一个汉字
    问题:区位码第一个字符处于0~ 93,则在网络通信中会存在错误
    解决:给区码和位码加上0~32,也就是20H,那么区码和位码都会从32开始,避开了0 ~31控制字符,这样就变成了国标码,国标码横纵坐标再加上80H(128)才能存入计算机,成为汉字内码
    原因:计算机无法区分国标码和ASCII,因此需要转为汉字内码,当计算机发现这两个字节最高位都是1,那么就说明此时读取的是汉字(先读1byte发现<128代表是ASCII,发现>128说明还需要读取1byte组成汉字,加128的目的就是避开ASCII范围,与ASCII兼容)
  • 输入编码:内——>nei2转为国标码——>汉字内码——>存储在计算机中
  • 汉字字形码:汉字内码——>(国标码)——> 汉字字形码
  • 3.字符串

    3. 奇偶校验

    局限性:如果奇数个bit位发生跳变,可以检测出错误,不能纠错,但是两个bit位错误就检测不出来了
    一个校验位只能携带两种信息状态:对/错

    偶校验的硬件实现:各信息进行异或(模2加)运算,得到的结果即为偶校验位

    进行偶校验(所有位进行异或)若结果为1说明出错

    5.汉明码

    海明码设计思路:将信息位分组进行偶校验-——> 多个校验位
    由奇偶校验码到汉明码

    多个状态位携带多种状态信息,对/错 错在哪里(由多个校验位标注)
    n个信息位多少分组?n个信息位分派到k个分组中,对k个分组分别进行偶校验,每个分组对应一个校验位,最终携带k个冗余校验位,反映对错,哪一个bit位出现错误,k bit有反映2^k个状态



    步骤:

  • 由信息位确定校验位,数据位数n+k,校验位Pi在2^(i-1),校验位的位数对应2进制下的权值是Pi所处的在整个数据中的位置 校验位P1 P2 P3所对应的权重是1,2,4和实际信息位所处在数据中的位置的权重是一一对应的
  • 确定规则,三个分组中应该包含哪几个信息位 ,每个校验码对应的分组中的信息位异或结果就是校验码的值,最后补齐全部的数据
  • 校验:将每一个分组进行偶校验,没有出错则最终结果为0
  • 纠错检错:
    S3S2S1代表了出错的位置
    原理:

  • 6.循环冗余校验码

    约定一个除数,在接收到数据后与该除数相除,检测余数是否为0

    生成多项式可以对应所约定的除数,信息位加上生成多项式最高次幂就是校验码位数


    模二除最终得到的余数只比除数少一位,这个余数就是校验位,这个校验码和1101进行模二除得到余数一定为000


    余数和出错位置的关系

    在这个例子中会出现余数相同,出错位置不同的情况
    六位信息位,三位校验位,数据一共9位,3个bit的校验位最多8中状态,可以表示七种出错,因此无法唯一确定

    当信息位少了,生成多项式不变,此时3bit可以表示全部的状态,并且生成多项式不变,出错位和余数的对应关系也是确定的
    循环冗余校验码的位数:
    K个信息位,R个校验位,若生成多项式选择得当,且 2^R>=K+R+1
    则CRC码可纠正1位错,实际应用中,计算机网络,检错不纠错

    了解:

    需要做网站?需要网络推广?欢迎咨询客户经理 13272073477