python二进制

使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换

十进制转二进制、八进制、十六进制

# 获取用户输入十进制数
dec = int(input("输入数字:"))
 
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
2进制8进制10进制16进制
2进制-bin(int(x, 8))bin(int(x, 10))bin(int(x, 16))
8进制oct(int(x, 2))-oct(int(x, 10))oct(int(x, 16))
10进制int(x, 2)int(x, 8)-int(x, 16)
16进制hex(int(x, 2))hex(int(x, 8))hex(int(x, 10))-
>>> int("1001",2)
9

bin()、oct()、hex()的返回值均为字符串,且分别带有0b、0o、0x前缀。

 

二进制左移一位,将数字翻倍。

二进制右移一位,就是将数字除以 2 并求整数商的操作。

二进制右移分为:逻辑右移和算术右移

逻辑右移 1 位,左边补 0 即可。

算术右移时保持符号位不变,除符号位之外的右移一位并补符号位 1。补的 1 仍然在符号位之后。

逻辑右移在 Java 和 Python 语言中使用 >>> 表示,而算术右移使用 >> 表示。在 C 或 C++ 语言中,逻辑右移和算数右移共享同一个运算符 >>。那么,编译器是如何决定使用逻辑右移还是算数右移呢?答案是,取决于运算数的类型。如果运算数类型是 unsigned,则采用逻辑右移;而是 signed,则采用算数右移。如果你针对 unsigned 类型的数据使用算数右移,或者针对 signed 类型的数据使用逻辑右移,那么你首先需要进行类型的转换。

由于左移位无需考虑高位补 1 还是补 0(符号位可能为 1 或 0),所以不需要区分逻辑左移和算术左移。

位的或:

逻辑“或”的意思是,参与操作的位中只要有一个位是 1,那么最终结果就是 1,也就是“真”。如果我们将二进制 110101 和 100011 的每一位对齐,进行按位的“或”操作,就会得到 110111。

位的与:

同理,我们也可以针对位进行逻辑“与”的操作。“与”的意思是,参与操作的位中必须全都是 1,那么最终结果才是 1(真),否则就为 0(假)。如果我们将二进制 110101 和 100011 的每一位对齐,进行按位的“与”操作,就会得到 100001。

位的异或:

 逻辑“异或”和“或”有所不同,它具有排异性,也就是说如果参与操作的位相同,那么最终结果就为 0(假),否则为 1(真)。所以,如果要得到 1,参与操作的两个位必须不同,这就是此处“异”的含义。我们将二进制 110101 和 100011 的每一位对齐,进行按位的“异或”操作,可以得到结果是 10110。(相同为0,不同为1)

按位或(|), 按位与(&), 按位异或(^)

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在Python中,可以使用bin()函数将十进制数转化为二进制数。例如,bin(10)将返回'0b1010',表示十进制数10的二进制形式。此外,Python还提供了一些二进制位运算符,如按位与(&)、按位或(|)、按位异或(^)、按位反转(~)、左移动(<<)和右移动(>>)等。这些运算符可以用于对二进制数进行位运算操作。例如,使用按位与运算符(&)可以对两个二进制数的相应位进行与运算,如果相应位数都为1,则该位的结果为1,否则为0。使用按位或运算符(|)可以对两个二进制数的相应位进行或运算,如果相应位数有一个为1,则结果为1;若都为0,则结果为0。使用按位异或运算符(^)可以对两个二进制数的相应位进行异或运算,如果对应位数相异,则结果为1;相同时,结果为0。使用按位反转运算符(~)可以对一个二进制数进行按位翻转,即将每个位取反。使用左移动运算符(<<)可以将一个二进制数的所有位向左移动指定的位数,高位丢弃,低位补0。使用右移动运算符(>>)可以将一个二进制数的所有位向右移动指定的位数,低位丢弃,高位补0。 #### 引用[.reference_title] - *1* [【python】数据类型4-二进制二进制运算符](https://blog.csdn.net/weixin_43098506/article/details/125175797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值