深入理解计算机系统——无符号数和有符号数相互转换

背景知识:
一般来说,有符号数值使用补码表示,无符号的数值使用原码来表示。
直接将二进制补码转化为十进制
补码的首位是符号位,如果为1则为负,所以-1 * 2^w为表示的数值。
例如:-3二进制补码1101
直接将补码转化为十进制:
-1 *2^3 + 1 * 2^2 + 0 * 2 ^ 1 +1 * 2^0
有符号数值转化为无符号数值
首先有符号数值使用补码表示,例如,-3的补码1101。将有符号数值改变为无符号数值,不会将二进制数更改,我们改变对二进制位的解释。比如-3,表示时使用补码是1101,我们将1101当作原码来读,1101表示13,也就是说-3变为无符号数值之后,变为13。
无符号数值转化位有符号数值
其实和上一个相似,过程相反。无符号数值一般使用原码进行表示,比如13二进制1101,有符号数值一般使用补码表示,所以我们将13的二进制的原码当作补码读取-3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值