青青子衿121 发表于 2021-1-9 20:37:02

python简单题求大佬解决(要源代码)

本帖最后由 青青子衿121 于 2021-1-10 03:44 编辑

suchocolate 发表于 2021-1-9 20:37:03

本帖最后由 suchocolate 于 2021-1-10 11:08 编辑

num1 = int(input('Please input number1: '))
print("int: {0:d}; bin: {0:b}".format(num1))
new_num1 = ~15 & num1    # 15取反就是 111...1111 0000, 和num1相与,会使num1低4位变成0,其他位不变。
print("new_int: {0:d}; new_bin: {0:b}".format(new_num1))


num2 = int(input('Please input number2: '))
print("int: {0:d}; bin: {0:b}".format(num2))
new_num2 = 15 ^ num2      # 15即000...000 1111,和num2异或,会使num2低4位取反,其他位不变。
print("new_int: {0:d}; new_bin: {0:b}".format(new_num2))

几个规律:

[*]任何数和0相与都等于0:x & 0 = 0
[*]任何数和1相或都等于1:x | 1 = 1
[*]任何数和自己异或都等于0:x ^ x = 0
[*]任何数和0异或都等于自己:x ^ 0 = x
[*]任何数和1异或等于自己的反:0 ^ 1 = 1, 1 ^ 1 = 0
页: [1]
查看完整版本: python简单题求大佬解决(要源代码)