美文网首页
编码总结

编码总结

作者: 暮阳晨鼓 | 来源:发表于2019-12-23 22:49 被阅读0次

1. BCD码

BCD码:也叫做二一十进制编码(binary coded decimal),几种常见的BCD码有8421码,2421码,余3码,余3循环码,其中余3码和余3循环码都是无权码。
余3循环码:余3循环码可看成将格雷码首尾各3种状态去掉后得到的,相邻两个编码只有一位不同。优点:1. 构成计数器时每次状态转换中只有一个触发器发生翻转,译码时不会出现竞争-冒险现象。2. 用与数值传递时,如果有一位传输错误,传递的数值与原值相比差1,不会出现更大的误差。

2. 格雷码

Gray码是一种循环码,因为它最大值和最小值也只有一位不同。优点:1.译码时不会有竞争-冒险现象 缺点:不能直接进行算术运算

2.1 二进制转格雷码

二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。


image.png
module bi2gray(
    bi_code,
    gray_code
);
input wire [7:0] bi_code;
output wire [7:0] gray_code;

always @ (*)
    gray_code = (bi_code >>1)^bi_code;

2.2 格雷码转二进制

雷码转换成二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。


image.png
module gray2bi(gray_code, bi_code);

parameter DATA_WIDTH = 8;
input wire [DATA_WIDTH-1 : 0] gray_code;
output reg [DATA_WIDTH-1 : 0] bi_code; 
integer i;
always @(*) begin
    bi_code[DATA_WIDTH-1] = gray_code[DATA_WIDTH-1];
    for (i=DATA_WIDTH-1; i>0; i=i-1)
        bi_code[i-1] = bi_code[i]^gray_code[i-1];
end

endmodule

3. 独热码

独热码:one-hot code,简单地说就是只有一个比特为1,其余位都为0。优点:译码电路简单,节约组合逻辑资源,其次状态跳变时只有一个寄存器翻转,减少了竞争-冒险现象。

4. 原码、反码和补码

4.1 定义

原码:正数是其二进制本身;负数是符号位为1,数值部分取X绝对值的二进制。
反码:正数的反码和原码相同;负数是符号位为1,其它位是原码取反。
补码:正数的补码和原码,反码相同;负数是符号位为1,其它位是原码取反,未位加1。(或者说负数的补码是其绝对值反码未位加1)
移码:将符号位取反的补码(不区分正负)


image.png

4.2. 根据补码求源码

如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1;其余各位取反,然后再整个数加1。
或者先减1,再取反;

4.3 补码加减法

在做补码加减法时,只需将符号位和数值部分一起参与运算,并且将符号位产生的进位丢掉即可
补码加法公式
  [X+Y]补 = [X]补 + [Y]补
补码减法公式
  [X-Y]补 = [X]补-[Y]补 = [X]补 + [-Y]补
其中:[-Y]补称为负补,求负补的办法是:对补码的每一位(包括符合位)求反,且未位加1.

4.4 补码运算溢出条件

当两个正数相加的结构为负数或者两个负数相加的结果为正数时为溢出条件
0的补码:0000_0000
1的补码:0000_0001
-1的补码:1111_1111
-128的补码:1000_0000
127的补码:0111_1111

4.5为何要使用源码、反码和补码

源码:不适合计算机做加减运算
反码:+0和-0的表示不一致

5. 浮点数表示

定义:浮点数是一种 公式化 的表达方式,用来近似表示实数,并且可以在表达范围和表示精度之间进行权衡(因此被称为浮点数)。
N = M X R^E,其中,M(Mantissa)被称为浮点数的 尾数 ,R(Radix)被称为阶码的 基数 ,E(Exponent)被称为阶的 阶码 。计算机中一般规定R为2、8或16,是一个确定的常数,不需要在浮点数中明确表示出来。


image.png

(1) 尾数用原码,且隐藏尾数最高位。
原码非0值浮点数的尾数数值最高位必定为 1,因此可以忽略掉该位,这样用同样多的位数就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。
(2) 阶码使用“移码”,基固定为2
32: 1-8-23
64: 1-11-52


image.png
image.png image.png

参考链接:https://blog.csdn.net/shuzfan/article/details/53814424

相关文章

  • 编码总结

    1. BCD码 BCD码:也叫做二一十进制编码(binary coded decimal),几种常见的BCD码有8...

  • H.264 中的指数哥伦布编码(Exponential-Golo

    目录 参考 概述 H.264 中的指数哥伦布编码规则 Golomb编码家族 为什么使用Golomb编码 总结 1....

  • Python编码问题详解

    继上一篇文章字符集和编码详解总结了常见字符编码后,这篇文章会对python中常见的编码问题进行分析和总结。由于py...

  • 加密编码总结

    url编码 base64编码 工作中碰到url与base64配合加解密的问题,base64编码后的字符串中可能含有...

  • URL编码总结

    URL是Universal Resource Locator的简称,翻译过来那就是统一资源定位符,好吧,我们经常会...

  • python编码总结

    目前我们项目代码注释少、代码风格差异大,会导致交接时间长、交接后故障多的问题。针对这种情况,我们应该统一代码风格,...

  • 文字编码总结

    〇、引(“联通事件”) 做一个试验。 新建一个文本文件,然后用记事本打开,输入“联通”,保存,关闭。 再次用记事本...

  • Java编码总结

    一、编码概念总结: 1、概念: 字符集(character set):是一个系统支持的所有抽象字符的集合。字符(c...

  • julia编码总结

    一、变量 取有意义的名字,不要用简称,简写给变量适当增加注释 二、注释 必须要写注释,而且是好的注释,不好的注释,...

  • 大脑训练之编码的快速记忆

    编码记忆是超级记忆法的入门基础,怎么快速的完成编码记忆呢,下面就是我给大家总结的方法。 编码 01小树 02铃儿 ...

网友评论

      本文标题:编码总结

      本文链接:https://www.haomeiwen.com/subject/yfxtoctx.html