Python精选200Tips:41-50

运行系统:macOS Sonoma 14.6.1
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-5 6-10 11-20 21-30 31-40

041 算术运算符

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • //:整除
  • %:取余
  • **:幂
a = 10
b = 3
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.3333...
print(a // b) # 3
print(a % b)  # 1
print(a ** b) # 1000

042 比较运算符

  • ==:等于
  • !=:不等于
  • >:大于
  • <:小于
  • >=:大于等于,不小于
  • <=:小于等于,不大于
x = 5
y = 10
print(x == y)  # False
print(x != y)  # True
print(x > y)   # False
print(x < y)   # True
print(x >= y)  # False
print(x <= y)  # True

043 负数的二进制表示

在计算机中,负数通常使用补码表示。补码是一种表示负数的有效方法,使得加法和减法可以使用相同的电路。以下是关于负数二进制表示的详细说明:

  • 原码:直接用二进制表示数值的绝对值,最高位表示符号(0表示正数,1表示负数)。
  • 反码:负数的反码是其原码除符号位外的每一位取反。
  • 补码:负数的补码是其反码加1。

下面使用8位二进制数来表示,可以表示从-128到127之间的整数。

  • 示例1:-5的二进制表示

S1:5的二进制原码:0000 0101
S2:得到-5的反码:1111 1010(将原码的每一位取反)
S3:得到-5的补码:1111 1010 + 1 = 1111 1011
因此,-5的补码表示为 1111 1011

num = 5
binary = format(num, '08b')  # 8位二进制表示
print(binary)  # 输出: 00000101

num = -5
binary = format(num & 0xFF, '08b')  # 8位补码表示
print(binary)  # 输出: 11111011
  • 示例2:-127的二进制表示

S1:127的原码:0111 1111
S2:反码:1000 0000
S3:补码:1000 0000 + 1 = 1000 0001
因此,-127的补码表示为 10000001

num = 127
binary = format(num, '08b')  # 8位二进制表示
print(binary)  # 输出: 01111111

num = -127
binary = format(num & 0xFF, '08b')  # 8位补码表示
print(binary)  # 输出: 10000001
  • 示例3:-12的二进制表示

S1:12的原码:0000 1100
S2:反码:1111 0011
S3:补码:1111 0011 + 1 = 1111 0100
因此,-12的补码表示为 1111 0100

num = 12
binary = format(num, '08b')  # 8位二进制表示
print(binary)  # 输出: 00001100

num = -12
binary = format(num & 0xFF, '08b')  # 8位补码表示
print(binary)  # 输出: 11110100

044 位运算符

& 按位与

按位与运算符 & 在Python中用于对两个整数的每一位进行比较,只有在两个对应的二进制位都是 1 时,结果的该位才为 1,否则为 0。

  1. 正数的按位与
x = 5  # 二进制表示为 0000 0101
y = 3  # 二进制表示为 0000 0011
result = x & y  # 结果为 0000 0001
print(result)  # 输出 1
  1. 负数的按位与
a = -5  # 二进制表示为 1111 1011(假设使用8位表示)
b = 3   # 二进制表示为 0000 0011
result = a & b  # 结果为 0000 0011
print(result)  # 输出 3
  1. 零的按位与
e &
  • 29
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AnFany

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

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

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

打赏作者

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

抵扣说明:

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

余额充值