转换进制的方法主要依赖于除法和取余数。下面我将分别介绍十进制转二进制、二进制转十进制、十进制转八进制和十六进制,以及八进制和十六进制转十进制的方法,并提供一些示例代码。
十进制转二进制
十进制转二进制可以使用除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示例代码: