📅  最后修改于: 2023-12-03 15:10:16.942000             🧑  作者: Mango
数制和算术是编程领域中非常基础的概念。在现代计算机设计和编程中,使用的最常见数制是二进制和十六进制数制。这里我们将讨论各种进制数及其相互转换方法,以及基本算术运算。
二进制数制只包含两个数字:0和1。在计算机内部,所有数字和数据都是以二进制形式存储的。
十进制是最基本的数制,包含10个数字:0到9。日常生活中,我们通常使用十进制。
八进制数制是基于8的一种数制,包含8个数字:0到7。在计算机科学中,八进制常被用于表示掩码和标识符等。
十六进制是基于16的一种数制,包含16个数字:0到9,A到F(或a到f,大小写不敏感)。在计算机科学中,十六进制通常用于表示最终的内存地址、颜色和字节等。
二进制向十进制的转换可以通过对每一位上的数字乘上对应的权值,然后将其相加获得。
def binary_to_decimal(binary):
decimal = 0
for i in range(len(binary)):
digit = binary.pop()
if digit == '1':
decimal += pow(2, i)
return decimal
十进制向二进制的转换可以使用循环除法法,具体做法是将目标数重复除以2直至商为0,将每一步除法的余数按倒序排列,即可得到该数的二进制表示。
def decimal_to_binary(decimal):
binary = ''
while decimal > 0:
binary = str(decimal % 2) + binary
decimal //= 2
return binary
八进制数向十进制数的转换可以使用和二进制向十进制的转换类似的方法。
def octal_to_decimal(octal):
decimal = 0
for i in range(len(octal)):
digit = octal.pop()
decimal += int(digit) * pow(8, i)
return decimal
十进制数向八进制数的转换同样可以使用上述的循环除法法。
def decimal_to_octal(decimal):
octal = ''
while decimal > 0:
octal = str(decimal % 8) + octal
decimal //= 8
return octal
十六进制向十进制的转换也可以使用和二进制和八进制向十进制的转换类似的方法。
def hex_to_decimal(hex):
decimal = 0
for i in range(len(hex)):
digit = hex.pop()
if digit in ['a', 'b', 'c', 'd', 'e', 'f']:
digit = ord(digit) - ord('a') + 10
else:
digit = int(digit)
decimal += digit * pow(16, i)
return decimal
十进制向十六进制的转换可以使用除法法,具体做法是将目标数重复除以16直至商为0,将每一步除法的余数按倒序排列,当余数大于9时,将其转换为对应的十六进制字母。
def decimal_to_hex(decimal):
hex = ''
while decimal > 0:
remainder = decimal % 16
if remainder >= 10:
hex = chr(ord('a') + remainder - 10) + hex
else:
hex = str(remainder) + hex
decimal //= 16
return hex
在编程中,算术运算是相当基础也相当常见的操作。下面是四种基本的算术运算的实现方式。
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
本文对数制和算术相关的基础概念进行了简要介绍,并给出了相应的Python代码片段。在实际编程中,熟练掌握数制之间的相互转换以及基本的算术运算是一项必不可少的技能。