怎么编程转换进制

时间:2025-01-24 17:58:33 网络游戏

转换进制的方法主要依赖于除法和取余数。下面我将分别介绍十进制转二进制、二进制转十进制、十进制转八进制和十六进制,以及八进制和十六进制转十进制的方法,并提供一些示例代码。

十进制转二进制

十进制转二进制可以使用除2取余法。具体步骤如下:

1. 用2整除十进制数,得到商和余数。

2. 再用2整除商,再次得到商和余数。

3. 重复上述步骤,直到商为0为止。

4. 将所有余数从下往上排列,即为二进制数。

Python示例代码:

```python

def decimal_to_binary(num):

result = ""

while num > 0:

remainder = num % 2

result = str(remainder) + result

num //= 2

return result

示例

print(decimal_to_binary(5)) 输出: 101

```

二进制转十进制

二进制转十进制可以使用按权展开法。具体步骤如下:

1. 从二进制数的最右边一位开始,这一位的权重是2的0次方。

2. 向左移动一位,这一位的权重是2的1次方,以此类推。

3. 将每一位上的数字乘以对应的权重,然后求和。

Python示例代码:

```python

def binary_to_decimal(binary_str):

decimal_num = 0

for i, digit in enumerate(reversed(binary_str)):

decimal_num += int(digit) * (2 i)

return decimal_num

示例

print(binary_to_decimal('1011')) 输出: 11

```

十进制转八进制

十进制转八进制也可以使用除2取余法,但与二进制类似,只是最后将余数按照八进制的格式排列。

Python示例代码:

```python

def decimal_to_octal(num):

result = ""

while num > 0:

remainder = num % 8

result = str(remainder) + result

num //= 8

return result

示例

print(decimal_to_octal(18)) 输出: 22

```

十进制转十六进制

十进制转十六进制同样可以使用除2取余法,只是最后将余数按照十六进制的格式排列。十六进制数中的字母A到F分别代表10到15。

Python示例代码:

```python

def decimal_to_hexadecimal(num):

result = ""

while num > 0:

remainder = num % 16

if remainder < 10:

result = str(remainder) + result

else:

result = chr(remainder - 10 + ord('A')) + result

num //= 16

return result

示例

print(decimal_to_hexadecimal(27)) 输出: 1F

```

八进制转十进制

八进制转十进制可以使用乘法和加法。具体步骤如下:

1. 将八进制数的每一位乘以8的相应次方(从右向左,次方从0开始)。

2. 将所有乘积相加,得到十进制数。

Python示例代码:

```python

def octal_to_decimal(octal_str):

decimal_num = 0

for i, digit in enumerate(reversed(octal_str)):

decimal_num += int(digit) * (8 i)

return decimal_num

示例

print(octal_to_decimal('22')) 输出: 18

```

十六进制转十进制

十六进制转十进制也可以使用乘法和加法。具体步骤如下:

1. 将十六进制数的每一位乘以16的相应次方(从右向左,次方从0开始)。

2. 将所有乘积相加,得到十进制数。

Python示例代码: