【Python秘籍】十进制整数与二进制数的转换

最近在用Python写遗传算法时,发现需要将十进制的整数转换成二进制数,那么怎么来转换呢?当然如果你学过进制转换的有关计算方法,你可以手动编写一些函数来实现,不过总体来说还是比较麻烦的,这里介绍Python内置的两个函数bin()和int(),利用这两个函数可以轻轻松松完成转换。

一、十进制整数转换成二进制数

代码如下:

num = 8
numb = bin(num)
print(numb)

这段代码的输出结果如下:

0b1000

0b是什么呢?有过一定计算机专业基础的人一定知道,其实他只是表示二进制数的前缀,也就是说加个0b在前面表示这个数不是一千,而是二进制的一零零零.

二、二进制数转换成十进制整数

代码如下:

numb = 0b1101
numb2 = '0b1101'
num = int(numb)
num1 = int(numb2 , 2)
print(num)
print(num1)

这段代码输出的结果如下:

13
13

也就是说我们通过一个简单的int函数将0b1101转换成了十进制的13。这里要强调的是,我们在写二进制数的时候,一定要加上0b这个前缀,否则它会把你转换成的数当成十进制数,也就是输出结果还是1101。还有一点要注意的就是,当你给出的二进制数是字符串类型的时候,在你使用int函数时要像上面代码写的那样后面加上个参数2,否则会报错。可以简单地理解成告诉int函数你输入的这个字符串不是个字符串那么简单,而是代表着二进制。

三、小贴士

还有一点需要大家注意的是,通过bin函数转换成的二进制数的类型是一个字符类型,可以通过下标遍历每个字符,但不能当做整型的数字来处理,所以大家在实际应用中,可能还需要将后几位取出来进行int类型的强制转换。而int转换成的十进制数的类型就是int型的,因为int函数本身也可以当做一个强制类型转换的函数。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以使用内置函`bin()`、`oct()`和`hex()`将十进制整数转换二进制、八进制和十六进制。 例如,将十进制整数`10`转换二进制: ```python bin(10) ``` 输出结果为: ``` 'b101' ``` 其中,`'b'`表示二进制的前缀。 将十进制整数`10`转换为八进制: ```python oct(10) ``` 输出结果为: ``` 'o12' ``` 其中,`'o'`表示八进制的前缀。 将十进制整数`10`转换为十六进制: ```python hex(10) ``` 输出结果为: ``` 'xa' ``` 其中,`'x'`表示十六进制的前缀。 ### 回答2: Python中,将十进制整数转换为指定进制可以使用内置函`bin()`、`oct()`、`hex()`以及手动转换的方法。 1. `bin()`转换二进制 使用`bin()`函可以将十进制整数转换二进制,其函格式为`bin(x)`,其中`x`为待转换十进制整数。函返回值为字符串类型的二进制。 示例代码: ```python dec_num = 2019 bin_num = bin(dec_num) print(bin_num) # 输出 0b11111100011 ``` 2. `oct()`转换为八进制 使用`oct()`函可以将十进制整数转换为八进制,其函格式为`oct(x)`,其中`x`为待转换十进制整数。函返回值为字符串类型的八进制。 示例代码: ```python dec_num = 2019 oct_num = oct(dec_num) print(oct_num) # 输出 0o3733 ``` 3. `hex()`转换为十六进制 使用`hex()`函可以将十进制整数转换为十六进制,其函格式为`hex(x)`,其中`x`为待转换十进制整数。函返回值为字符串类型的十六进制。 示例代码: ```python dec_num = 2019 hex_num = hex(dec_num) print(hex_num) # 输出 0x7e3 ``` 4. 手动转换法 手动将十进制整数转换为指定进制可以通过不断地将该除以目标进制得到每一位的值,然后将其转换为目标进制对应的字,最终拼接成字符串表示目标进制下的值。以下为将十进制整数转换二进制的示例代码: ```python dec_num = 2019 target_base = 2 result = "" while dec_num >= target_base: remain = dec_num % target_base dec_num = dec_num // target_base result = str(remain) + result result = str(dec_num) + result print(result) # 输出 11111100011 ``` 以上将十进制整数转换为指定进制的方法应根据具体需要选择使用。需要注意的是,如果使用手动转换法,需要根据目标进制选择相应的转换规则。例如,将十进制整数转换为六进制需要将十进制每次除以六,并按照规则将余对应为六进制下的字。 ### 回答3: 在Python中将十进制整数转换为指定进制是非常简单的。首先需要使用Python的内置函int()将输入的参转换整数。然后,可以使用Python的内置函bin()、oct()、hex()分别将整数转换二进制、八进制、十六进制。 以下是一个例子,将十进制整数转换二进制、八进制、十六进制: ``` num = int(input("请输入一个十进制整数:")) # 输入一个十进制整数 print("二进制为:", bin(num)) # 将整数转换二进制,并输出结果 print("八进制为:", oct(num)) # 将整数转换为八进制,并输出结果 print("十六进制为:", hex(num)) # 将整数转换为十六进制,并输出结果 ``` 在上述例子中,用户需要输入一个十进制整数作为输入,然后分别使用bin()、oct()、hex()函将该整数转换二进制、八进制、十六进制,并分别输出结果。这个例子非常简单,如果想要将十进制整数转换为其他进制,只需要将bin()、oct()、hex()中的字2、8、16分别改为目标进制即可。 总之,在Python中将十进制整数转换为指定进制非常简单,只需要使用内置函就可以实现。需要注意的是,由于二进制、八进制、十六进制都是指定进制的特殊表达方式,故不需要改变所传入的字类型,仍然保持整数类型即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值