补码
来源:互联网 发布:迈克柯里昂知乎 编辑:程序博客网 时间:2024/04/29 12:58
问题一:如何将一个补码快速的转换成真值?
答:由于公式比较难打出来,所以这里举例说明。
【0001】补 = -0 * 2^3 + 0 * 2^2 + 0 * 2^1 + 1 * 2^0 = 0 + 0 + 0 + 1 = 1
【1011】补 = -1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = -8 + 0 + 2 +1 = -5
问题二:N位的补码所能表示的最大的正数和最小的负数是多少?
答:根据问题一给出的公式,可以求出最大值的向量为【01...1】和最小值的向量为【10...0】。所以一个N位的补码能表示数的范围是【-2^(N-1) ,2^(N-1)-1 】
例:一个8位长的补码能表示的的最大值和最小值?
最大值:当首位为0,后面全为1的时候最大,为【2^7 - 1】
最小值:当首位为1,后面的全为0的时候最小,为【-2^7】
结论一:原码表示的小数只能无限接近1和-1,补码可以达到-1,但是无法达到1。
结论二:0在补码中只有一种表示方式,但是在原码中有+0和-0两种表示方式。
结论三:补码和原码之间的来回转换都可以用反码再加1来进行计算,转换的时候的进位不会改变符号位。只要在做算数运算的时候才可能会改变符号位。
0 0
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- 补码
- spark 单词计数
- jenkins2.7热部署tomcat
- 过虑器应用之1-设置request编码
- Android studio下查看SHA1值
- 在Ubuntu KyLin 14.04上使用opencv3.1.0运行自己的程序
- 补码
- 设计模式学习11——外观模式
- 记录我的“程序媛”之路
- utl_inaddr
- mybatis 原始dao开发存在的问题
- 网易七鱼“大闹”客服行业,真能一举定乾坤?
- 为什么一些类要实现Serializable
- NOIP2016--PJ总结—by LiHang
- 安装第三方yum源