数据的机器表示--补码反码浮点数等

12 篇文章 1 订阅

数据的机器表示–补码反码浮点数等

参考:《计算机系统基础》(袁春凤版)


工具

进制转换器

IEEE 754 单精度浮点数转换器

补码计算器

如何查看各种int,long的数值范围:
#include<limits>
long MAX64 =( numeric_limits<long>::max)();
其余同理


补码、反码
  • 原码
    • 1个符号位 + 值位: 0为正数,1位负数
  • 补码
    • 正数的补码:自身不变;
    • 负数的补码:符号位不变,其余"按位取反,末尾加一";
  • 反码
    • 正数的反码:自身不变;
    • 负数的反码: 符号位不变,其余“按位取反”;

1.如何根据补码、反码求其原码?
将以上定义倒过来套用即可
如x的补码是'1001 0110', 则x的原码是符号不变,按位取反末尾加一
除去符号位是'10110',按位取反是'1001',末尾加一是'1010', 结果是-10

2. 32位int的范围?
-2^32 到 2^32-1
十六进制表示为: 0x80000000 ~ 0x7FFFFFFF
换成二进制观察:-2^32: 0B1000 0000 0000 0000 ...
2^32-1: 0B0111 1111 1111 1111 ...

3. 32位int下,取x=-2^31,则x-1的正负?
显然x-1发生了溢出,但要判断溢出后的符号位是0还是1
x的二进制表示为:1000 0000 0000 ...
x-1的二进制为:0111 1111 1111 ...,此时x-1的值等于2^32,即int的最大值

4. 0的补码和反码?
0分别+0和-0
区别在于不同的符号位会影响取反码和补码
+[0] = 0000 0000; 反码,补码都为0:
-[0] = 1000 0000; 反码=1111 111(即-1), 补码=0000 0000

4. x和~x之间的关系?
x + ~x == -1
证明:...


浮点数的概念和运算:

1. IEEE-754标准与浮点数运算

2. 浮点数的加减法运算过程详解

3. 计组学习笔记(一):浮点数的表示和运算


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值