2---MATLAB将十进制转换成二进制补码
来源:互联网 发布:福利app软件论坛 编辑:程序博客网 时间:2024/06/05 20:28
MATLAB中提供了一个将十进制转换为二进制的函数dec2bin,但是该函数只接收非负整数,也就是不能直接将负数转换为二进制补码。那如何在MATLAB中生成补码呢?我们都知道负数的补码为其反码加1,然而MATLAB中的二进制是字符串,是不能直接运算的,因为要对字符串进行操作,所以如果用这种方式生成补码的话会比较困难。当然,我们也可以先用bin2dec函数将反码转换为十进制加1,然后再转换为2进制,以降低处理复杂度,但事实上我们还有更好的办法。
首先得了解补码的原理,这里有3个链接。
补码-wiki百科
补码-百度百科
计算机为什么选用二进制补码
观察一下下面的表格。
_
从上表不难发现一个规律,
x = 010
y = 101
z = y + 1 = 110
a = x + y = 111
b = a + 1 = 1000 =23
可以看到取反的数y加上x是等于111的,那取反之后再加1再加上x就一定会等于1000,对于其他的负数也都一样。
下图是wiki百科里的描述,如果图看不清可以点击上面的链接。
重要的就是这个公式
x∗=2N−x
对于位宽为
if (x >= 0) bin_x = dec2bin(x, N); % 正数的反码和补码都和原码一样else bin_x = dec2bin(2^N + x, N);end
如果是要对二进制进行仿真的话,在某些情况下用HDL仿真,然后用MATLAB分析结果可能会更快。
阅读全文
0 0
- 2---MATLAB将十进制转换成二进制补码
- 十进制转换二进制(补码)
- 将十进制转换成二进制输出
- 将十六进制转换成二进制或十进制
- 将十进制转换成二进制数
- 用递归将十进制转换成二进制
- JS将一个十进制转换成二进制
- 将十进制数转换成二进制数
- 将二进制数转换成十进制数
- Matlab十进制整数转换成二级制补码
- 将十进制转换为二进制
- 将二进制转换为十进制
- 快速 二进制,八进制,十进制,十二进制转换 .源码,反码,补码,
- 十进制转换成二进制
- 十进制转换成二进制
- 十进制转换成二进制
- 十进制转换成二进制
- 十进制转换成二进制
- 关于std::promise的set_value_at_thread_exit
- 设备驱动模型的基石kobject
- unity .exe文件打开时跳过选择窗口界面的方式
- useradd用户命令详解
- 图的搜索(深度搜索)
- 2---MATLAB将十进制转换成二进制补码
- leetcode 223. Rectangle Area 矩形面积计算
- 欢迎使用CSDN-markdown编辑器
- js事件委托或事件代理
- C语言 通过指针访问一维数组的几种方式,通过数组名访问一维数组
- android、ios、php之间AES加密解密
- 初学Spring boot + mybatis-plus 配置
- 设备驱动模型之device
- angularJS 特殊字符过滤