负数的原码、补码
来源:互联网 发布:炫浪网络社区不能下载 编辑:程序博客网 时间:2024/09/21 09:20
1)负数的原码:符号位为1,数值位为其绝对值。
如下面的-97。
2)计算机和fpga使用的运算都是补码,而不是原码。不同bit的减法得到的结果一样。如果当然原码就错了。
例:不同位宽的两个数相减,fpga相减后,得到的两个结果。他们都表示的是-6,但是它不是-6的原码,而是-6的补码。
4bit 0-6 =-6 8bit 0-6 =-6
0 0 0 0 0 0 0 0 0 0 0 0
- 0 1 1 0 - 0 0 0 0 0 1 1 0
1 0 1 0 1 1 1 1 1 0 1 0
*****************************************************************************
-6的补码,进行求证,以上说法。
4bit 8bit
原码: 1 1 1 0 1 0 0 0 0 1 1 0
反码: 1 0 0 1 1 1 1 1 1 0 0 1
+ 1 + 1
补码 1 0 1 0 1 1 1 1 1 0 1 0
3)减法补位,根据结果的取值范围,如果需要多一位,则要补位。 需要用两个减数 和被减数的符号位取扩位,而不能用0去扩位。
例如: log2_r, log2_b , 取值范围-2~7.99, 定点化为 1 /20/16,
diff_rb的取值范围为,-10~10,定点化为1/21/16。位宽的高位需要用符号位去扩展,而不能直接用0扩展。
4)x/(1280*720)
IP核中也有除法,但latency很大,可以将其转化为乘法,x*小数。为了保留精度,将小数转化为2进制,分析小数前面有n个0,将小数先左移n位,小数变成整数y。
将x*y,然后将结果截取地位的nbit既可。
/*******************************************************************************************************************
以下部分是引用:
在计算机中,一个有符号数可以用原码、补码和反码表示。
1) 共同规律:
① 用0表示正号,用1表示负号,且摆放在数据的最高位,有符号数和无符号数表示的根本区别在于无符号数的最高位是数值位,有符号数的最高位是符号位;
② 同一正数的原、补、反码都相同。
③ 定义区间均对模2n 而言,其中n表示有符号数的二进制代码位数。
2)其它规律:
① 任一负数的原码和对应的正数(绝对值相等)的原码仅是符号位不同;
② 任一负数的反码是对应的正数的反码的各位求反,反之亦然;
③ 任一负数的补码是对应的正数的补码的各位求反,然后加1,反之亦然;
④ 从定义区间上看
原码和反码的定义区间相同,是 –2n-1<X<2n-1;
补码的定义区间是 –2n-1≤X<2n-1;
⑤ 0的原码、反码有+ 0和- 0之分;
0的补码只有一种表达方式。
例1:设X = +97 求[X]原、[X]反、[X]补 (mod 28)
解:97=1100001B
[X]原=01100001B;
[X]反=[X]补=01100001B。
例2:设X = -97, 求[X]原、[X]反、[X]补 (mod 28)
解:97=1100001B
[X]原=11100001B;
[X]反=10011110B;
[X]补=10011111B。
例3:设X = -137 求[X]原、[X]反、[X]补 (mod 29)
解:137=10001001B
[X]原=110001001B;
[X]反=101110110B;
[X]补=101110111B。
4. 补码、反码加减运算规则:
[X+Y]补=[X]补+[Y]补 [X+Y]反=[X]反+[Y]反
[X-Y]补=[X]补+[-Y]补 [X-Y]反=[X]反+[-Y]反
[-Y]补=[[Y]补]补 [-Y]反=[[Y]反]反
- 负数的原码、补码
- 正数、负数的原码,反码,补码
- 负数的原码反码和补码
- 原码、反码、补码、负数的移位
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码最初是针对负数设计的
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码,计算机中负数的表示
- 什么是原码反码补码 计算机中负数的表示
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码,计算机中负数的表示
- 原码、反码、补码,以及负数的位操作
- 原码、反码、补码,计算机中负数的表示
- 二进制转换(负数的原码,反码,补码)
- 原码、反码、补码,计算机中负数的表示
- 原码、补码、反码及计算机中负数的表示
- 二进制负数、补码、原码、反码
- Android服务器与客户端数据交互(Http协议)
- 深入浅出Mysql(一)
- Json,List,Map的数据格式详解。
- QT读取文件夹大小
- 机器学习(1)PLA
- 负数的原码、补码
- 各种内部排序方法的比较
- 安卓中的SQLite数据库的基本操作1
- SDUT 3322 (收索+打表)
- Maven 项目关于 plexus-utils:jar的错误解决
- bbs用户注册页面源码
- 顺序表应用(1)
- HDU 2662 Coin
- c++杨辉三角