10进制数转化成2进制数的四种方法

本文深入探讨了人工智能在不同技术领域的应用,包括前端开发、后端开发、移动开发等,展示了AI如何推动信息技术的发展与创新。文章还涵盖了AI在大数据、开发工具、嵌入式开发等方面的应用实例,为读者提供了丰富的实践经验和理论指导。

第一种方法:


第二种方法:


第三种方法:


第四种方法:



### 十进制进制四种方法 #### 方法一:除基取余法(使用栈) 通过不断将给定的十进制数除以2,记录每次得到的商和余数。当最终商变为0时,所获得的所有余数逆序排列即为对应的二进制表示。 ```python def decimal_to_binary_stack(decimal_number): stack = [] while decimal_number > 0: remainder = decimal_number % 2 stack.append(remainder) decimal_number //= 2 binary_string = "" while len(stack) != 0: binary_string += str(stack.pop()) return binary_string or "0" ``` 此函数实现了利用栈来存储每一次计算所得之余数,在完成全部运算之后再依次弹出形成完整的二进制字符串[^1]。 #### 方法二:位操作法 这种方法直接运用Python内置按位移位功能来进行换工作。对于任意正整数值n而言,其最高有效位之前的部分均视为填充零处理;因此可以先求得该值对应于多少个比特长度,进而逐位读取出每一位上的状态并构建起相应的二进制串。 ```python def decimal_to_binary_bitwise(n): if n == 0: return '0' bits = '' while n: bits = ('1' if n & 1 else '0') + bits n >>= 1 return bits ``` 这段代码展示了如何采用右移指令以及逻辑与运算符(&),逐步提取出每一个二进制位的信息。 #### 方法三:递归方式 递归版本同样基于除基取余原理设计而成,不过这里选择了一种更为简洁优雅的方式来表达这一过程——每当遇到一个新的非负输入参数x时,就调用自身传入更新后的商作为新的实参继续执行下去直到满足终止条件为止;与此同时还要记得把当前层产生的那个特定位置上的二进制字符追加到结果序列当中去。 ```python def dec_to_bin_recursive(x): if x >= 2: dec_to_bin_recursive(x // 2) print(str(x % 2), end='') ``` 上述程序片段定义了一个名为`dec_to_bin_recursive()` 的辅助工具用于展示递归机制下的具体实现细节。 #### 方法四:内建bin() 函数 最简单的方法莫过于借助 Python 自带库所提供的 `bin()` 功能了,它能够快速高效地完成从十进制向二进制形式之间的变任务,并返回带有前缀 “0b”的字符串对象表示新生成的数据形态。 ```python binary_representation = bin(positive_integer)[2:] print(binary_representation) ``` 此处给出的例子说明了怎样去除默认附加在输出前端部分不想要的内容以便获取纯粹由‘0’ 和 ‘1’ 构成的目标格式化文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值