【超级基础版】十进制与二进制的转换
目录
一、为什么是二进制?
二、二进制的加法和乘法
三、二进制向十进制转换
四、十进制整数向二进制转换
五、十进制小数向二进制小数的转换
六、八进制和十六进制的引入
一、为什么是二进制?
我们知道电脑的数据本质上是0和1,就是我们使用的二进制。为什么计算机要使用二进制来进行数据的存储和运算呢?
计算机的发展至今经历了四代,从电子管、晶体管、中/小规模继承电路,到大规模/超大规模继承电路,这些逻辑电路通常只有两种状态——通电或断电,两种状态正好可以用“1”和“0”来表示。于是可以用二进制表示电流的通断。
这是计算机用二进制来表示信息的基本逻辑。
二、二进制的加法和乘法
二进制的加法和乘法,结合物理的串联、并联更好理解。我们将开关器件的是否连接即电路的通断同1和0来表示,把电灯的是否亮起也分别用1和0来表示,可以得到如下分析:
- 二进制的加法
二进制的加法用物理的并联电路来加以理解:
开关A | 开关B | 灯的状态 | 说明 | ||
0 | + | 0 | = | 0 | 开关A断开,开关B断开,灯不亮 |
0 | + | 1 | = | 1 | 开关A断开,开关B连接,形成回路,灯亮 |
1 | + | 0 | = | 1 | 开关A连接,开关B断开,形成回路,灯亮 |
1 | + | 1 | = | 10 | 开关A连接,开关B连接,形成回路,灯亮 |
- 二进制的乘法
二进制的乘法用物理的串联电路来加以理解:
开关A | 开关B | 灯的状态 | 说明 | ||
0 | * | 0 | = | 0 | 开关A断开,开关B断开,灯不亮 |
0 | * | 1 | = | 0 | 开关A断开,开关B连接,灯不亮 |
1 | * | 0 | = | 0 | 开关A连接,开关B断开,灯不亮 |
1 | * | 1 | = | 1 | 开关A连接,开关B连接,形成回路,灯亮 |
二进制的加法:逢二进一。二进制的乘法:有0则为0,全1才为1。
三、二进制向十进制转换
- 二进制与十进制的转换,可以先找一找规律:
十进制 | 2的几次幂? | 演算备注 | 二进制 | 1的后面有几个0? |
0 | 0 | |||
1 | 2的0次幂 | 1 | 0个0 | |
2 | 2的1次幂 | 竖式演算: 1 + 1 10 | 10 | 1个0 |
3 | 10 + 1 11 | 11 | ||
4 | 2的2次幂 | 11 + 1 100 | 100 | 2个0 |
5 | 101 | |||
6 | 110 | |||
7 | 111 | |||
8 | 2的3次幂 | 1000 | 3个0 | |
9 | 1001 | |||
…… | …… | …… |
通过上表我们可以找到规律:当十进制的某个数是2的某次方的时候,转换成二进制时就是1的后面添加多少个0的问题。
故我们可以形成二进制对十进制的转换,举例说明:
由此,我们产生了更简便的方法:
- 聊完了规律,该讲一讲原理:
二进制转换十进制数其实是以二为基数,按权展开求和。以十进制数1998为例:
反正什么进制的加法都是这么来的。我就不信你还不懂哈哈哈!
四、十进制整数向二进制转换
十进制数转换为二进制数一般需要将十进制数的整数部分和小数部分分别转换后,再加以合并。十进制数的整数部分转换为二进制数,用“除2取余数法”。如十进制数41:
但是除二取余法为什么可以实现十进制转二进制数呢?
这是由数的进制的性质决定的。
任何一种进制,它的各位数,乘权求和以后就能得到它的真值(如上上图所示)。所以,对进制值取模以后,就能得到它的最低位;而将这个数除以它的进制值(丢弃余数)后,就能得到它除最低位以外的其它位的数据。重复这二步,就能得到某个真值所对应的该进制数的所有各位上的数字。以十进制数1998举例说明:
五、十进制小数向二进制小数的转换
十进制小数转二进制用的是“乘2取整法”。以十进制小数0.25为例:
那么我们为什么可以用“乘2取整法”呢?
在这里我们不得不要引入一个概念——数的移位!
我们将数的小数点向左移动一位,相当于除以这个数的进制值;将数的小数点向右移动一位,相当于乘以这个数的进制值。
这里还没想好!想好来再补!
参考来源:
- 十进制转二进制为什么要用除二取余法?_百度知道
相关文章:

【超级基础版】十进制与二进制的转换
目录 一、为什么是二进制? 二、二进制的加法和乘法 三、二进制向十进制转换 四、十进制整数向二进制转换 五、十进制小数向二进制小数的转换 六、八进制和十六进制的引入 一、为什么是二进制? 我们知道电脑的数据本质上是0和1,就是我们…...

爬虫学习日记第八篇(爬取fofa某端口的协议排行及其机器数目,统计top200协议)
需求 找到最常用的200个协议 通过fofa搜索端口,得到协议排名前五名和对应机器的数目。 遍历端口,统计各个协议对应的机器数目(不准,但能看出个大概) 读写API API需要会员,一天只能访问1000次。 import…...
LeetCode 1425. 带限制的子序列和【动态规划,单调队列优化】2032
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

强化学习问题(7)--- Python和Pytorch,Tensorflow的版本对应
1.问题 之前下载的python3.8,在对应Pytorch和Tensorflow时没太在意版本,在运行一些代码时,提示Pytorch和Tensorflow版本过高,直接降下来,有时候又和Python3.8不兼容,所以又在虚拟环境搞一个Pyhon3.7&#x…...

Python —— UI自动化之使用JavaScript进行元素点亮、修改、点击元素
1、JavaScript点亮元素 在控制台通过JavaScript语言中对元素点亮效果如下: 将这个语句和UI自动化结合,代码如下: locator (By.ID,"kw") # 是元组类型 web_element WebDriverWait(driver,5,0.5).until(EC.visibility_of_eleme…...
input表单的23个type属性
在HTML中,<input>标签用于创建输入框。type属性用于指定输入框的类型。以下是23个可能的type属性及其用途: text:普通文本输入框。password:密码输入框,输入的内容会显示为圆点或星号。email:电子邮…...
优先级总结
目录 越小越优先 1.路由协议 2.路由开销 3.STP 4.Ethernet-trunk(LACP) 越大越优先 1.VRRP 2.Router-id 3.DR/BDR 越小越优先 1.路由协议 取值范围:0~255 直连路由0 静态路由/默认路由60 RIP路由100 OSPF路由10或150 BGP路由255 2…...

Windows 11中无法通过默认应用更改文件关联
这里写自定义目录标题 现象解决方法 这里以.md格式文件为例。 现象 在 Windows 11 计算机上安装第三方软件后,关联 JPG、JPE、JPEG、PNG、MPG、MPEG、MD 等文件类型和其他文件类型的能力可能会受到阻碍。以下是尝试更改上述文件类型的文件关联时可能遇到的问题。 …...

小插曲 -- 使用Visual Studio Code远程连接香橙派
在之前的学习中,代码的修改和保存都依赖于“vi”指令,而不得不承认vi指令的编辑界面非常原始,所以,如果可以将代码编辑放到更友好的环境里进行无疑是一件大快人心的事情。 本节介绍如何通过Visual Studio Code来进行远程连接: Vi…...

留意差距:弥合网络安全基础设施的挑战
您最近一直在关注日益增加的网络威胁吗?如果您发现自己沉浸在 IT 或技术中,那么您可能会永远追求与时俱进。每天都会出现新的漏洞,这对保持消息灵通提出了巨大的挑战。 构建和维护能够应对复杂攻击者的网络安全基础设施所面临的挑战是真实存…...

【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅰ—— 生成 CSR
目录 替换拓扑图证书关系示意图说明 & 关联博文 1. 默认证书截图2. 使用certificate-manager生成CSR2.1 创建存放CSR的目录2.2 记录PNID和IP2.3 生成CSR2.4 验证CSR 参考资料 替换拓扑图 证书关系示意图 默认情况下,VMCA 与 Machine SSL的关系是 本系列博文要…...
TypeScript中extends的用法
介绍 extends 关键字在 TypeScript 中有多种应用,包括泛型约束、继承类、接口继承和条件类型。通过灵活使用 extends,TypeScript 提供了丰富的工具来增强类型安全性,使代码更具表现力和可维护性。 1. 约束接口的继承 extends 关键字也可用于…...

手把手创建属于自己的ASP.NET Croe Web API项目
第一步:创建项目的时候选择ASP.NET Croe Web API 点击下一步,然后配置: 下一步:...

【Javascript】数组的基本操作
目录 声明 字面量形式 构造函数声明 访问数组中的元素 数组的长度 增删改查 增 通过索引添加数据 在数组后面添加数据 在数组前添加数据 删 删除数组中最后一个元素 删除数组中第一个元素 改 查 数组是⼀种列表对象,它的原型中提供了遍历和修改元素的…...

Jupyter Notebook 设置黑色背景主题
Jupyter Notebook 设置黑色背景主题 # 包安装 pip install jupyterthemes -i https://mirrors.aliyun.com/pypi/simple pip install --upgrade jupyterthemes # 查看可用主题 jt -l # monokai暗背景,-f(字体) -fs(字体大小) -cellw(占屏比或宽度) -ofs(输出段的字…...

1 Go的前世今生
概述 Go语言正式发布于2009年11月,由Google主导开发。它是一种针对多处理器系统应用程序的编程语言,被设计成一种系统级语言,具有非常强大和有用的特性。Go语言的程序速度可以与C、C相媲美,同时更加安全,支持并行进程。…...
面试-Redis-缓存击穿
问:什么是缓存击穿 ? 怎么解决 ? 答:缓存击穿的意思是对于设置时间过期的key,当key过期时,恰好有大量对这个key的请求发送过来,此时这些请求发现这个key过期,就会打到数据库加载数据并设置缓存ÿ…...
80个国内可用的Chatgpt网页版(2023.10.21更新)
ChatGPT:革命性的人工智能语言模型 ChatGPT,一款能够与人类进行自然流畅对话的人工智能语言模型,通过大量训练数据和先进算法,展现出卓越的自然语言处理能力。它能理解并回应人类问题,提供准确、连贯且有意义的答案&a…...

Android 10.0 Launcher3定制化之动态时钟图标功能实现
1.概述 在10.0的系统产品rom定制化开发中,在Launcher3中的定制化的一些功能中,对于一些产品要求需要实现动态时钟图标功能,这就需要先绘制时分秒时针表盘,然后 每秒刷新一次时钟图标,时钟需要做到实时更新,做到动态时钟的效果,接下来就来分析这个功能的实现 如图: 2.动…...

HTTPS、SSL/TLS,HTTPS运行过程,RSA加密算法,AES加密算法
1、为什么网站要使用安全证书 我们所处的网络环境是复杂多样的,大致分为两类,一类是可信的网络服务商,比如直接连的电信运营商的网络,网线,4G,5G;另一类是不可信的网络,比如WIFI&am…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...