• 二进制处理中的一些技巧


    在二进制和十进制的处理中,有时候一些小技巧是很有用的。

    1、把十进制数转换成二进制数

    (1)在MATLAB中有一个函数dec2bin,可以把正整数转换为2进制

    (2)对于负数有这样一个结论:N位二进制负数X的补码对应的无符号数为2N +X

    例:有符号原码:1001  十进制为:-1

             反码: 1110 

        补码:1111   无符号数为:15

                   15 = 24  + (-1);

            这样就可以快速的知道用4位二进制表示的-5的补码的无符号数为16-5=11即1011

     

    2、把负数二进制补码转换成十进制

    (1)把符号位去掉,再把剩余位取反加一,得到的数就是负数的二进制补码的绝对值。

    (2)直接把二进制补码取反加一;

    (3)1011 (-1)*23+0*22+1*21+1*20 = -5

    问题:

    =================================================================

    =================================================================

    1、用补码表示的二进制,正数转负数,负数转正数都是取反加一。

    2、两个数相加位宽会增加,所以要扩展符号位:

      例:

      reg din_cho1_i [15:0];

         reg din_cho2_i [15:0];

         reg din_cho1_o2_i [16:0];

        always@( posedge clk)

        begin

      din_cho1_o2_i  <= {din_cho1_i [15],din_cho1_i } + {din_cho2_i[15],din_cho2_i };

        end

    3、截位处理,可以截高位,但一定要保留符号位

    always@(posedge clk)

    begin

      dout_i <= {din_cho1_o2_i [16],din_cho1_o2_i [14:0]};

    end

    4、四舍五入

      dout_i <= din_cho1_o2_i [16:1] + din_cho1_o2_i [0];

     没有四舍五入,可能会带来很多直流信号。

  • 相关阅读:
    推荐给新手gopher的一些书籍
    flask中路由处理
    flask中间件之请求扩展
    Chrome调试技巧
    iconfont 使用
    @font-face 使用过程
    SEO
    数据结构与算法2-4 队列
    数据结构与算法2-4 堆栈链式存储
    软件推荐--Sublime Text3常用快捷键查询(不断更新ing)
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/4375886.html
Copyright © 2020-2023  润新知