酷代码 AI
菜单

你编一程序实现两种不同进制之间的数据转换。 输入 共三行,第一行是一个正整数,表示需要转换的数的进制 ,第二行是一个n进制数,若 则用大写字母 表示数码 ,并且该 进制数对应的十进制的值不超过 ,第三行也是一个正整数,表示转换之后的数的进制 。 输出 一个正整数,表示转换之后的 进制数。 样例输入 复制 16 FF 2 样例输出 复制 11111111

```python def base_conversion(): # 读取输入 source_base = int(input().strip()) # 原进制 number_str = input().strip().upper() # 原进制数(转换为大写) target_base = int(input().strip()) # 目标进制 # 将原进制数转换为十进制 decimal_value = 0 for char in number_str: if '0' <= char <= '9': digit = ord(char) - ord('0') else: # A-F 对应 10-15 digit = ord(char) - ord('A') + 10 decimal_value = decimal_value * source_base + digit # 将十进制数转换为目标进制 if decimal_value == 0: print(0) return result_digits = [] while decimal_value > 0: remainder = decimal_value % target_base if remainder < 10: result_digits.append(chr(remainder + ord('0'))) else: result_digits.append(chr(remainder - 10 + ord('A'))) decimal_value //= target_base # 反转并输出结果 print(''.join(reversed(result_digits))) if __name__ == "__main__": base_conversion() ``` 代码说明: 1. 读取三行输入:原进制、原进制数、目标进制 2. 将原进制数转换为十进制值 - 遍历每个字符,数字0-9直接转换,字母A-F转换为10-15 - 按位权展开计算十进制值 3. 将十进制值转换为目标进制 - 除基取余法,逆序拼接结果 - 处理0的特殊情况 4. 输出目标进制数 测试示例: 输入: ``` 16 FF 2 ``` 输出: ``` 11111111 ``` (十六进制FF=十进制255=二进制11111111) [2026-01-20 17:29:31 | AI问答 | 429点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多