进制转换器—BHD Converter

一、进制规则:

进制是数字系统的一种表示方式,它是按照一定的进位和位权规则来组合数字的。根据不同的进制基数,可以分为以下常见进制:

    1、二进制:基数为2,使用数字0和1来表示。

    2、八进制:基数为8,使用数字0~7来表示。

    3、十进制:基数为10,使用数字0~9来表示。

    4、十六进制:基数为16,使用数字和字母(A~F)来表示。

在任意进制中,每个位上的数都表示基数的幂,这个幂的次数就是这个数的位置。例如,对于十进制中的数字 456,它可以表示为:

456 = 410^2 + 510^1 + 6*10^0

①在二进制中,数字的每一位只能是0或1,因此它的权值就是2的幂次方。例如,对于二进制中的数字 1011,它可以表示为:

1011 = 12^3 + 02^2 + 12^1 + 12^0

②在八进制中,数字的每一位只能是0~7,因此它的权值就是8的幂次方。例如,对于八进制中的数字 345,它可以表示为:

345 = 38^2 + 48^1 + 5*8^0

③在十六进制中,数字的每一位可以是0~9和字母A~F,因此它的权值就是16的幂次方。例如,对于十六进制中的数字 3AB,它可以表示为:

3AB = 316^2 + 1016^1 + 11*16^0

不同进制的转换可以利用进制的基本原理,如数位分离、位权计算、幂次积累等方法来进行。

二、进制转换器

进制在转换的时候,计算过程和计算量有时候会很大,所以我们就得用到一些工具来辅助我们去进行一个快捷的、便捷的运算,甚至说可以替换我们去得到转换的结果。话不多说,直接上代码:

    1、首先是一个默认的常用的十进制的转换器,功能也就是只能做十进制转换成其他进制数字的工具:

#Not easy to make, do not steal!!

print("We are accustomed to counting in decimal, which uses 10 digits: 0 to 9.")
print("----------------------------------")
print("This program can display a series of numbers in decimal, binary, and hexadecimal.")
print("----------------------------------\n")

while True:
    number = int(input("请输入一个整数: "))

    if number == 0:
        print("这个数字是零,请重新输入。\n")
        continue

    print("二进制: ", bin(number))
    print("八进制: ", oct(number))
    print("十进制: ", number)
    print("十六进制: ", hex(number))
    break

    2、下面这个就是一个功能更齐全的版本,它可以做到任意进制之间的转换,可谓功能性是十分的强大,妥妥的拉满了!

print("Through the following program, we can convert any base number into a number corresponding to any base number.")
print("----------------------------------\n")

def convert_number():
    num = input("请输入要转换的数字: ")
    n_base = int(input("请输入该数字的当前进制: "))
    t_base = int(input("请输入要转换的目标进制: "))

    try:
        dec_num = int(num, n_base)
        converted_num = ""
        while dec_num > 0:
            remainder = dec_num % t_base
            if remainder < 10:
                converted_num = str(remainder) + converted_num
            else:
                converted_num = chr(ord('A') + remainder - 10) + converted_num
            dec_num = dec_num // t_base

        print("转换后的数字为:", converted_num)
    except ValueError:
        print("输入的数字或进制无效,请重新输入。")
        convert_number()

convert_number()

    3、在输入源代码并运行几次之后,尝试对其进行实验性的修改。修改一些可变动的属性值或者一些其他的参数,使得程序多元、多样化!

通往答案的道路错综复杂,我们只用最简单的方式抵达!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值