python~进制,位运算

本文深入讲解了二进制、六进制、八进制及十进制的转换原理与计算方法,通过实例演示如何将不同进制的数字转换为二进制,并介绍了二进制在信息技术中的应用。
部署运行你感兴趣的模型镜像

二进制:

2^1 = 10 = 2

2^2 = 100 = 4

2^3 = 1000 = 8

结论:

计算二进制时,先用2的最大次方来逼近要求的数,然后是多少次方就在1后面加多少个0,比如2的4次方变为二进制就是10000,之后再依次用相同的方法计算余下的,直到与要求的数相等

扩展:

六进制:

6^0 = 1 = 1

6^1 = 10  = 6

6^2 = 100 = 36

6^3 = 1000 = 216 

八进制:

8^1 = 10  = 8

8^2 = 100 = 64

8^3 = 1000 = 512

十进制:

10^1 = 10  = 10

10^2 = 100 = 100

10^3 = 1000 = 1000

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python 中的二进制位运算操作及用法 #### 1. 按与 (`&`) 按与操作会逐比较两个整数的二进制表示形式。只有当两个对应的二进制均为 `1` 时,结果才为 `1`,否则为 `0`[^2]。 ```python a = 6 # 二进制: 0110 b = 3 # 二进制: 0011 result = a & b # 结果: 0010 -> 十进制 2 print(result) # 输出: 2 ``` --- #### 2. 按或 (`|`) 按或操作同样逐比较两个整数的二进制表示形式。只要其中一个对应置上的二进制为 `1`,则结果就为 `1`,否则为 `0`。 ```python a = 6 # 二进制: 0110 b = 3 # 二进制: 0011 result = a | b # 结果: 0111 -> 十进制 7 print(result) # 输出: 7 ``` --- #### 3. 按异或 (`^`) 按异或操作会对两个整数的二进制表示形式中的每一进行对比。如果两不同,则结果为 `1`;如果相同,则结果为 `0`[^4]。 ```python a = 6 # 二进制: 0110 b = 3 # 二进制: 0011 result = a ^ b # 结果: 0101 -> 十进制 5 print(result) # 输出: 5 ``` --- #### 4. 按取反 (`~`) 按取反操作会将每一个二进制翻转:`1` 转变为 `0`,而 `0` 则转变为 `1`。需要注意的是,在 Python 中,由于负数采用补码存储方式,因此结果可能是一个负数。 ```python a = 6 # 二进制: 0110 result = ~a # 补码转换后的十进制值为 -7 print(result) # 输出: -7 ``` --- #### 5. 左移 (`<<`) 左移操作会使指定数量的比特向左移动,左侧溢出的部分会被舍弃,右侧空缺的置填充零[^3]。 ```python a = 6 # 二进制: 0110 result = a << 1 # 向左移动一,结果为 1100 -> 十进制 12 print(result) # 输出: 12 ``` --- #### 6. 右移 (`>>`) 右移操作会使指定数量的比特向右移动,右侧被移除的比特将会丢失,对于无符号数据类型来说,左侧填入零;而对于有符号的数据类型而言,取决于具体实现(通常情况下也是填入零)[^1]。 ```python a = 6 # 二进制: 0110 result = a >> 1 # 向右移动一,结果为 0011 -> 十进制 3 print(result) # 输出: 3 ``` --- #### 综合应用实例 以下代码展示了如何利用上述各种位运算来解决实际问题——生成格雷码序列: ```python class Solution: def grayCode(self, n: int) -> list[int]: result = [] for i in range(2 ** n): # Gray Code 的计算公式:i ^ (i >> 1) result.append(i ^ (i >> 1)) return result ``` 此函数通过循环遍历从 `0` 至 `2^n-1` 的所有数字,并依据公式 `i ^ (i >> 1)` 来构建每一步的格雷编码。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值