二进制及原码反码补码

目录

一.进制及转换

1.二进制和进制转换

1.1 2进制转10进制

1.2 10进制转2进制

1.3 2进制转换8进制

1.4 2进制转换成16进制

二、原码、反码、补码


一.进制及转换

2进制、8进制、10进制、16进制是数值的不同表现形式。

比如:数值13的各种进制表现形式:

13的2进制:1101        

13的8进制:15

13的10进制:13

13的16进制:D

1.二进制和进制转换

平常我们最常用10进制:

10进制中满10进1

10进制的数字是由0-9的数字组成

2进制规则相同:

2进制中满2进1

2进制的数字每一位是由0-1的数字组成

因为2进制只用0和1两个数字,有很多优点,比如传输和处理时不易出错、运算规则简单,故在计算机中,数据以二进制形式储存,在此我们重点讨论2进制。

1.1 2进制转10进制

如10进制数字123表示一百二十三:

10进制的位

          1(百位)

     2(十位)         3(个位)
     权重           10^2        10^1       10^0
   权重值           100          10           1
     求值                           1*100+2*10+3*1= 123

2进制的1101:

2进制的位

      1

     1         0       1
    权重     10^3
### 二进制原码反码补码的计算方法 #### 原码 原码是最简单的表示方式,最高位作为符号位,“0”代表正数,“1”代表负数,其余部分为数值绝对值的二进制形式。例如: - 正数 `+5` 的原码为 `00000101`(假设字长为8位)。 - 负数 `-5` 的原码为 `10000101`。 需要注意的是,在某些特殊情况下,如 `-0` 和 `+0` 都存在不同的编码[^1]。 #### 反码 反码是对原码种转换形式,其定义如下: - 对于正数,反码原码相同; - 对于负数,除符号位外,其他各位按位取反。 例如: - 正数 `+5` 的反码仍为 `00000101`。 - 负数 `-5` 的原码为 `10000101`,将其非符号位取反后得到反码 `11111010`。 #### 补码 补码是为了简化加法器设计而引入的概念,能够统处理正数和负数之间的运算。其定义如下: - 对于正数,补码原码相同; - 对于负数,可以通过两种方法获得补码: 1. 将该数的反码; 2. 或者直接将原码逐位取反后再加。 例如: - 正数 `+5` 的补码仍是 `00000101`。 - 负数 `-5` 的原码为 `10000101`,通过上述规则可得其补码为 `11111011`[^2]。 以下是实现这过程的个 Python 函数示例: ```python def get_complements(num, bits=8): if num >= 0: original_code = format(num, f'0{bits}b') complemented_code = original_code else: abs_num = abs(num) original_code = '1' + format(abs_num, f'0{bits-1}b')[-(bits-1):] inverted_bits = ''.join(['1' if b == '0' else '0' for b in original_code[1:]]) complemented_code = bin(int('1'+inverted_bits, 2) + 1)[2:].zfill(bits) return { "original": original_code, "complemented": complemented_code } result = get_complements(-5) print(f"Original Code: {result['original']}, Complemented Code: {result['complemented']}") ``` 以上代码展示了如何基于给定整数生成对应的原码补码。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值