计算机二进制算法

二进制:总共八位,由0、1组成,第一位代表符号位,0代表整数,1代表负数,计算方法逢二进一。

 

补码:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理.另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃.

正数补码:逢二进一

例:+13得到的是00001101

负数补码:第一位符号位为1,其它位为该数绝对值原码按位取反,再加1

例:-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
0000111按位取反为1111000;再加1,所以-7的补码是11111001.

 

二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如: 

(1)加法:0+0=0 0+1=1 1+0=1 1+1=0 

(2)减法:0-0=0 1-1=0 1-0=1 0-1=1 

(3)乘法:0*0=0 0*1=0 1*0=0 1*1=1 

(4)除法:0/1=0 1/1=1,除数不能为0 

 

二进制转十进制,2的次幂-1乘以对应的数字之和。

例如:00001011

  2^7*0+2^6*0+2^5*0+2^4*0+2^3*1+2^2*0+2^1*1+2^0*1 = 0+0+0+0+8+0+2+1 = 11

 

### 计算机二进制算法的基础及其实现 #### 一、二进制的基本概念 在计算机科学中,二进制是一种基于两个符号(0 和 1)的数制系统。它被广泛应用于现代计算设备中,因为其简单性和硬件实现的可能性[^2]。 二进制数可以表示任何整数值,并通过一系列逻辑运算完成复杂的数学计算。 为了更好地理解和应用二进制,需要掌握以下几个核心知识点: - **原码**:正数以自然形式存储,负数则在其最高位设置标志位来区分。 - **反码**:对于正数,反码等于原码;而对于负数,则将其除符号位外的所有位取反。 - **补码**:这是当前最常用的编码方式之一,用于简化减法操作并统一处理加法和减法运算。具体而言,一个负数的补码为其反码再加 1 的结果。 #### 二、Python 实现二进制加法算法 以下是利用 Python 编写的一个简单的函数,该函数能够接受两个字符串类型的二进制输入参数,并返回它们相加之后的二进制串作为输出结果[^1]: ```python def binary_addition(bin_str1, bin_str2): max_len = max(len(bin_str1), len(bin_str2)) # 补齐长度以便于逐位相加 bin_str1 = bin_str1.zfill(max_len) bin_str2 = bin_str2.zfill(max_len) carry = 0 result = [] for i in range(max_len - 1, -1, -1): # 反向遍历每一位 bit_sum = int(bin_str1[i]) + int(bin_str2[i]) + carry if bit_sum >= 2: carry = 1 result.append(str(bit_sum % 2)) # 当前位置的结果只保留最低有效位 else: carry = 0 result.append(str(bit_sum)) if carry != 0: # 如果最后还有进位,则需额外记录下来 result.append('1') return ''.join(reversed(result)) # 测试代码 print(binary_addition("11", "1")) # 输出应为 '100' ``` 上述程序展示了如何手动模拟二进制加法规则的过程。值得注意的是,在实际开发过程中可以直接调用内置方法 `bin()` 或者其他高级库来进行更高效的转换与运算。 #### 三、总结 通过对二进制基本原理的学习以及实践编写相应的软件功能模块,我们可以更加深刻地认识到这一基础理论的重要性及其广泛应用价值。无论是数据存储还是网络通信等领域都离不开对这些基础知识的理解和支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值