进制转换,补码

1. 进制转换,补码

1. [二进制、八进制、十进制、十六进制的相互转换](https://www.cnblogs.com/tandaxia/p/4248466.html#tanDiv2)

1.1. 十进制转二进制, 十进制转八进制,十进制转十六进制

方法:用十进制的数,除以要转换的位数取余数,最后的结果从最后一个余数读到第一个
在这里插入图片描述

1.2. 二进制转八进制,二进制转十六进制

二进制的三位:就是一位八进制,二进制的四位:就是一位十六进制
在这里插入图片描述

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=image%25203.png&pos_id=img-K1EOSOaH-1716556616300)

2. 原码、反码、补码

补码的意义:让计算机运算设计更简单,可以只有加法没有减法,让符号位也参与计算
反码:正数的反码和原码一样,负数的反码除最高位符号位外,其他位都取反
举例说明:10 - 8 = ? 和 8 - 10 = ?
10 - 8 = 10 + (-8) 的计算
-------- start -------
10原码: 0000 1010
-8原码: 1000 1000
-------------------
10反码: 0000 1010
-8反码: 1111 0111
-------------------
10补码: 0000 1010
-8补码: 1111 1000
补码计算结果: 10000 0010 (注意:注意:这里结果是 9 位,因为在进行加法时最高位进位了。8 位二进制数只能表示 8 位长度,所以进位会被丢弃。实际我们只看低 8 位,即 0000 0010。)
二进制 0000 0010最高位为0表示是正数,正数的补码、反码、原码一样,所以补码二进制 -> 转成十进制为:2

 8 - 10 = 8 + (-10)的计算
 --------  start -------
 8原码:         0000 1000
 -10原码:     1000 1010
 --------------------
 8反码:         0000 1000
 -10反码:     1111 0101
 --------------------
 8补码:           0000 1000
 -10补码:       1111  0110
 补码计算结果: 1111 1110   (一个字节八位,最高位为1,表示是负数)
 1111 1110 一个字节八位最高位为1表示是负数,所以此补码二进制转成十进制,需要补码减一变成反码,反码再转成原码,原码转十进制
 补码 1111 1110 
 -->  反码(补码减1):1111 1101  
 -->  原码(符号位外,其他取反):1000 0010  
 --> 十进制:-2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qi妙代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值