编程中数字转换为十进制的方法取决于原始数字的进制。以下是几种常见进制的转换方法:
二进制转十进制
算法:将二进制数的每一位与2的对应次幂相乘,然后将这些乘积相加。例如,二进制数1011转换为十进制是:(1×2^3) + (0×2^2) + (1×2^1) + (1×2^0) = 8 + 0 + 2 + 1 = 11。
Python代码:
```python
binary_num = "1011"
decimal_num = int(binary_num, 2)
print(decimal_num) 输出:11
```
C语言代码:
```c
include int main() { char binary_num[] = "1011"; int decimal_num = 0; binary_num = binary_num[::-1]; for (int i = 0; i < strlen(binary_num); i++) { decimal_num += int(binary_num[i]) * pow(2, i); } printf("%d\n", decimal_num); // 输出:11 } ``` 算法:从右到左,将每个八进制位乘以8的相应幂次,然后将结果相加。例如,八进制数17转换为十进制是:1×8^1 + 7×8^0 = 8 + 7 = 15。 C语言代码: ```c include int main() { int octalNum, decimalNum = 0, i = 0; printf("Enter an Octal number: "); scanf("%o", &octalNum); // %o specifier to read octal number while (octalNum != 0) { int rem = octalNum % 10; octalNum /= 10; decimalNum += rem * pow(8, i); i++; } printf("The decimal number is: %d\n", decimalNum); return 0; } ``` 算法:将十六进制数的每一位乘以16的相应次幂,然后将结果相加。例如,十六进制数A2F转换为十进制是:10×16^2 + 2×16^1 + 15×16^0 = 2560 + 32 + 15 = 2597。 Python代码: ```python hex_num = 'A2F' decimal_num = int(hex_num, 16) print(decimal_num) 输出:2597 ``` C语言代码: ```c include int main() { char s; scanf("%s", s); int t = strlen(s); long sum = 0; for (int i = 0; i < t; i++) { if (s[i] >= 'A' && s[i] <= 'F') { sum += (s[i] - 'A' + 10) * pow(16, t - 1 - i); } else { sum += (s[i] - '0') * pow(16, t - 1 - i); } } printf("%ld\n", sum); return 0; } ``` 建议 选择合适的函数:根据使用的编程语言选择合适的内置函数或手动实现算法。 注意进位:在转换过程中注意进位,确保每一位的值正确乘以其权重。 测试:对不同的输入进行测试,确保转换结果的正确性。八进制转十进制
十六进制转十进制