十进制转换为八进制与十六进制

有没有兄弟教教怎么做啊,不用bin,oct 和hex函数算,我懂怎么转换为二进制,不懂怎么转换其他进制

10进制转任意进制


def convert(n,t):
    c = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    if t > len(c) or t < 2:
        print('超出进制限制')
        return None
    r = ''
    while n > 0:
        r = c[n % t] + r
        n //= t
    return r
print(convert(100,23))

基于new bing的编写参考:记得采纳一下!

img

# 将十进制数转化为八进制数
def dec_to_oct(num):
    octal = ""
    
    # 从右向左依次计算八进制数的每一位
    while num > 0:
        octal = str(num % 8) + octal
        num //= 8
    
    return octal

# 将十进制数转化为十六进制数
def dec_to_hex(num):
    hex_str = ""

    # 从右向左依次计算十六进制数的每一位
    while num > 0:
        remainder = num % 16
        
        # 根据余数添加对应的十六进制字符
        if remainder < 10:
            hex_str = str(remainder) + hex_str
        else:
            hex_str = chr(ord('A') + remainder - 10) + hex_str
        
        num //= 16
    
    return hex_str

# 获取用户输入的十进制数
num = int(input("请输入一个十进制数: "))

# 调用函数将十进制转换为八进制
octal = dec_to_oct(num)

# 调用函数将十进制转换为十六进制
hex_str = dec_to_hex(num)

# 输出结果
print("转换后的八进制数为:", octal)
print("转换后的十六进制数为:", hex_str)


  • 这篇博客: python中的内置函数中的 bin(),hex(),oct()转为二进制,十六进制,八进制 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 描述: bin() 返回一个整数 int 或者长整数 long int 的二进制表示
    描述: hex() 函数用于将10进制整数转换成16进制,以字符串形式表示
    描述: oct() 函数将一个整数转换成8进制字符串

  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    可以使用以下方法手动将十进制数转换为八进制和十六进制:

    1. 手算法: 假设我们有一个十进制数为283。回想一下如何将十进制转换为二进制数。了解如何将数字转换为基数之后,就容易知道如何进行转换。

    二进制: 100011011 八进制: 423 十六进制: 11B

    1. Python代码: 可以使用Python内置方法oct()hex()将十进制数转换为八进制和十六进制。 可以按如下所示使用:
    # 将十进制数转换为八进制
    num = 283
    oct_num = oct(num)
    print(oct_num)    # 输出结果为:0o423
    
    # 将十进制数转换为十六进制
    hex_num = hex(num)
    print(hex_num)    # 输出结果为:0x11b
    

    希望这可以帮助您手动将十进制数转换为八进制和十六进制。