用python将十进制数转换成二进制数_python中的数据结构-将十进制数转换为二进制数...
二进制表示法在计算机科学中很重要,计算机中存储的所有值都以一串二进制数字,即0和1的形式存在。 如果无法在通用表示形式和二进制数字之间来回转换,我们将需要以非常奇怪的方式与计算机进行交互。
十进制的数字如何转换成二进制的,举几个例子就明白了:图片来自https://www.geeksforgeeks.org/program-decimal-binary-conversion/
将17作为被除数,除以2,每次所得的余数有两种可能,0或者1. 最后将余数从先到后依次排列,即得到二进制代表的数。最高次的为MSB,最低次的为LSB. 图片来自https://www.geeksforgeeks.org/program-decimal-binary-conversion/
References:https://www.electronics-tutorials.ws/binary/bin_2.htmlwww.electronics-tutorials.ws
As the decimal number is a weighted number, converting from decimal to binary (base 10 to base 2) will also produce a weighted binary number with the right-hand most bit being the Least Significant Bit or LSB, and the left-hand most bit being the Most Significant Bit or MSB, and we can represent this as:
由于十进制数是一个加权数,因此从十进制到二进制(从10到2)的转换也将产生一个加权的二进制数,其中最右边的位是最低有效位LSB,而最左边的位 是最高有效位或最高有效位,我们可以将其表示为MSB.
两个网站详细介绍转换过程:https://www.wikihow.com/Convert-from-Decimal-to-Binarywww.wikihow.comBase Conversion Toolwww.mathsisfun.com
但是,我们如何轻松地将整数值转换为二进制数呢? 答案是用“除以2”的算法,该算法使用堆栈来跟踪二进制结果的数字。
思路:图片来自http://www.pas.rochester.edu/~rsarkis/csc162/_static/lectures/Stacks.pdf
二进制算法:假定我们以大于0的整数作为开始的数字。
然后,将十进制数连续除以2,并记录余数。
第一次除以2可得到值是偶数还是奇数的信息。
-----偶数值的余数为0。它的一位数字为0。
-----奇数值将为1的余数,而数字1则为一位。
将二进制数构建为数字序列:第一个余数实际上是序列中的最后一位,最后一个余数是序列中的第一位。
我们再次看到了反转属性,表明堆栈很可能是解决问题的适当数据结构。
下面的Python代码实现了2分算法。
函数divide_by_2将一个十进制数的参数并将其重复除以2。
第 行使用内置的模运算符%提取余数,然后第 行将其加入堆栈。
在除法过程达到0之后,将在第-行中构造一个二进制字符串。
第 行创建一个空字符串。 二进制数字一次从堆栈中弹出,并附加到字符串的右端。 然后返回二进制字符串。
二进制转换算法可以轻松扩展,以针对任何基数执行转换。 计算机科学使用许多不同的编码。 其中最常见的是二进制,八进制(基数8)和十六进制(基数16)。
当我们超出基数10时,不能再简单地使用余数了,因为它们本身被表示为两位十进制数。相反,我们需要创建一组数字来表示超出9的那些余数。解决此问题的方法可以将数字集扩展为包括一些字母字符。例如,十六进制将十个十进制数字与前十六个字母字符一起用于16个数字。为实现此目的,将创建一个数字字符串,将数字存储在其相应位置。 0在位置0,1在位置1,A在位置10,B在位置11,依此类推。从堆栈中除去余数时,可以将其用于索引数字字符串,并且可以将正确的结果数字附加到答案中。
用python将十进制数转换成二进制数_python中的数据结构-将十进制数转换为二进制数...相关推荐
- 第六章第二十五题(将毫秒数转换成小时数、分钟数和秒数)(Convert milliseconds to hours, minutes, and seconds)
**6.25(将毫秒数转换成小时数.分钟数和秒数)使用下面的方法头,编写一个将毫秒数转换成小时数.分钟数和秒数的方法. public static String convertMillis(long ...
- 将毫秒数转换成小时数、分钟数和秒数。
使用下面的方法,编写一个将毫秒数转换成小时数.分钟数和秒数的方法: public static String convertMillis (long millis) 该方法返回形如"小时:分 ...
- python图片转换成文字_Python输出汉字字库及将文字转换为图片的方法
用python输出汉字字库问题1:假设我们知道汉字编码范围是0x4E00到0x9FA5,怎么从十六进制的编码转成人类可读的字呢? 问题2:怎么把unicode编码的字写入文件呢,如果直接用open() ...
- python列表转换成数字_Python中列表元素转为数字的方法分析
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
- python怎么把程序封装成函数_PYTHON中如何把固定格式代码,封装成一个函数?
图片压缩的太厉害了,看不清楚,代码如下: with open('movies.csv', 'r') as f: reader = csv.reader(f) texts = list(reader) ...
- mysql将时间戳转换成日期_mysql 中查询时如何将时间戳转换为日期格式 / 日期格式转换为时间戳...
在数据库的使用中,经常需要按指定日期来查询记录,以便于统计,而在数据库中,有很多存储的是时间戳, 也有的直接存日期,查询的时候可能不是那么好弄. mysql提供了两个函数: from_unixtime ...
- java实现十进制数转换成二进制数
十进制数转换成二进制 import java.util.Scanner; public class Textwile { public static void main(String[] args) ...
- c++第二周任务一*(1‐1)编写递归函数将十进制数转换成二进制数输出。
/任务一 /*(1‐1)编写递归函数将十进制数转换成二进制数输出. * 算法说明: */ #include <iostream> using namespace std; void d2b ...
- 2018阿里巴巴基础平台研发工程师实习生笔试题:一.十进制数转换成的二进制数中有几个1. 二.输出IP所在的网段
1.输入一个十进制数转换成二进制数,输出二进制中有几个1? import java.util.Scanner;public class Main {public static void main(St ...
最新文章
- python难嘛-我没有基础,能否学会Python?Python难吗?
- Ubuntu Server中怎样卸载keepalived
- 用C++实现网络编程---抓取网络数据包的实现方法
- 论文浅尝 | 基于未知谓词与实体类型知识图谱的 Zero-Shot 问题生成
- 我的 CDMA 往事
- shell中单引号、双引号、反引号、反斜杠的使用
- 计算机考研数据结构高分笔记,2021版天勤计算机考研高分笔记系列:数据结构高分笔记(第9版)...
- T400换风扇解决开机fan error问题
- VastBase技术实践
- bugly android升级,android 新版本升级示例源码(bugly)
- 云查毒:避免恶意程序入侵的正确姿势
- Spica,一种路径推荐的路段结合方法
- Elastic App Search:免费的产品,可提供出色的搜索体验
- GeneMark-ES:真核生物编码基因预测软件
- dubbo配置多协议
- java的日历类_java 中的Calendar日历类
- 医疗器械三类申请需要提交什么材料?
- tensorflow.python.framework.errors_impl.InvalidArgumentError exception str() failed解决办法
- idea 离线安装translation 谷歌翻译
- 计算机水平怎么填范例,简历表个人能力怎么写(大学生个人获奖情况范例)
热门文章
- python queryset_Django之querySet如何解析使用
- 关于C语言标识符作用域的说法 正确的是,郑州大学远程教育-网教《C语言程序设计》在线测试2 满分代做QQ805006590...
- [UITabBar appearance]不生效
- 将ubuntu16制作成镜像或者docker
- 超全的数据库分类介绍
- 「实在RPA·财务数字员工」加速财务数字化全方位升级!
- 短诗零词 | 评价项羽的三首诗
- Assembly与Modules详解
- linux 一次io大小,Linux——标准IO篇
- maskedtextbox控件的使用