揭开二进制的神秘面纱

二进制在编程中的地位举足轻重,这个名词听上去高深莫测,下面来揭开它神秘的面纱。

  我们平时计数都是以10为进制,我们平时数数:1、2、3、4、5、6、7、8、9,数到10时导致个位变成0,十位变成了1,因为9+1要向十位进一,十进制意味着数字的每一位最小为0,最大为9。同理,二进制意味着数字的每一位最小为0,最大为1,十进制的2在二进制如何表示呢?1+1意味着要进一位,对于二进制来说,1+1=10,注意!这里的10不是十进制的十。二进制的减法原理和十进制的减法一样,10-1=1,因为0减1,必须借一位才能够完成这个运算。
  二进制里有个位、十位的概念吗?没有。
  在解释这个问题前先介绍几个公式,计算机内有一些相应的单位去计量容量,这些单位跟程序员相关的的主要有:
  1字节=8位
  1字=16位
  双字=32位=2字
  如何称呼二进制中的位呢?比如10001100是一个总共有8位的数,也称为一个字节,10001100这个字节最左边的1称为字节的最高位,最右边的0称为字节的最低位。从最高位向最低位的方向到第几位就称为高几位,如1000称为这个字节的高4位,100称为这个字节的高3位;从最低位向最高位的方向数起到第几位就称为低几位,如:1100称为这个字节的低4位,100称为这个字节的低3位。一个字节从最低位往最高位的方向依次称为第0位(注意不是第1位)、第1位、第2位直到第7位(注意不是第8位),如10001100的第0位是0,第2位是1,第3位是1,这个称呼对于一个字、一个双字以及更大的计量单位都是一样的。
  下面我们把二进制10001100转化为十进制,以加深大家对二进制的认识:(^表示乘幂,2^3表示2的3次方,2^4表示2的4次方,以些类推,2^n表示2的n次方;*表示乘号)
  计算过程很简单:1*(2^7)+0*(2^6)+0*(2^5)+0*(2^4)+1*(2^3)+1*(2^2)+)+0*(2^1))+0*(2^0)=128+0+0+0+8+4+0+0=140。
  这个公式为什么能把二进制计算成十进制呢,先看看十进制是如何成为人们心目中的数字的。
  1206=1*(10^3)+2*(10^2)+0*(10^1)+6*(10^0)     
     =1000+200+0+6=1206
   这个相信大家都能理解,因为十进制是以10为进制的,所以十位是多少就表示这个数中含多少个10,百位是多秒表示这个数中含多少个100.比如一个十进制有3位,那么该数=百位*(10^2)+十位*(10^1)+个位*(10^0);如果一个十进制有n位,那么该数=第n-1位值*(10^(n-1))+第n-2位值*(10^(n-2))+......+第1位值*(10^1)+第0位值*(10^0)。
  因为二进制是以2为进制的,理所当然,所以对于一个n位的二进制来说,转化成十进制的方式是:第n-1位值*(2^(n-1))+第n-2位值*(2^(n-2))+......+第1位值*(2^1)+第0位值*(2^0)。
  通常我们在编程时使用十六进制来表示二进制,而不直接使用二进制,十六进制数的10-15如何表示呢?它们分别表示为A、B、C、D、E、F。在C语言中,可以使用0X,后跟十六进制的方式来描述一个二进制数,比如0x02表示二进制中的10,二进制如何转换成十六进制呢?
  比较实用的方法是将二进制以4位为一组,每4位转化为一个十六进制数字。
  以10001100为例,将它分为高4位1000和低4位1100,分别按照按照前面所说的方法转化成十进制,高4位1000:1*2^3=8;低4位1100转化成十进制:1*2^3+1*2^2=12。
  8表示为十六进制仍然是8,而12表示为十六进制是C,所以10001100用十六进制表示是8C,C语言描述是0X8C。
============================================== 
小技巧集锦:
  1、可以先把一个8位的二进制数11111111事先转化十进制数,并记住,下次转化时非常方便,第7位转化为10进制是128,第6位转化后是64,第5位转化后是32,第4位转化后是16,第3位转化后是8,第2位转化后是4,第1位转化后是2,第0位转化后是1,转化时把所有值为1的位的转化后十进制数相加即可。二进制1100转化成十进的过程:8+4=12
图解二进制,带你揭开二进制的神秘面纱 你好,这里是网络技术联盟站。 二进制,多么熟悉的字眼,相信只要是学计算机的,二进制绝对是入门的第一节课必学的知识点。你肯定经常会听说“计算机底层数据传输就是通过二进制流”、“二进制就是0和1”等等说辞。 对于二进制,更多的人还是停留在表面层的0和1,这个本身也没有错,不过既然今天写了这篇文章,那肯定是要从里到外扒个彻底。 如果本文对您有帮助,欢迎收藏哦! 让我们直接开始吧! 文章目录什么是二进制?二进制是如何工作的?二进制例子如何阅读二进制?彩蛋:如果快速地将十进制转为二进制第一步:找小于其最大的2的次幂数 阅读详情

相关推荐

计算机网络基础:揭开网络世界的神秘面纱

计算机网络基础:揭开网络世界的神秘面纱,计算机网络已深度融入现代生活,这篇文章对其基础内容展开全面阐述。开篇介绍计算机网络的定义,说明其由计算机设备、网络设备和传输介质构成。接着从地域范围和拓扑结构两个维度对计算机网络进行分类,并详细讲解 OSI 和 TCP/IP 参考模型,明晰各层功能与联系。随后阐述网络通信协议的定义及常见协议,如 TCP/IP、HTTP 等。最后聚焦网络安全,涵盖定义、重要性以及防火墙、加密技术等常用安全技术。文章旨在帮助读者构建计算机网络基础知识体系,理解其在生活和工作中的应用与价值

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

二进制通俗讲解

二进制在编程中的地位举足轻重,这个名词听上去高深莫测,下面来揭开它神秘的面纱。  我们平时计数都是以10为进制,我们平时数数:1、2、3、4、5、6、7、8、9,数到10时导致个位变成0,十位变成了1,因为9+1要向十位进一,十进制意味着数字的每一位最小为0,最大为9。同理,二进制意味着数字的每一位最小为0,最大为1,十进制的2在二进制如何表示呢?1+1意味着要进一位,对于二进制来说,1+1=

孤云出岫, 去留一无所系. 朗镜悬空,静躁两不相干. 6215

高通引导文件获取全攻略:ELF/MBN提取与EDL救砖实战

在智能手机底层维护中,引导加载程序(Bootloader)是系统启动的第一道关卡。高通平台通过PBL、SBL1/XBL等阶段完成硬件初始化和安全校验,一旦引导分区损坏,设备便可能陷入黑砖状态。此时,掌握ELF与MBN格式的引导镜像获取方法,成为维修工程师和刷机用户的核心技能。通过官方固件包解包或借助EDL模式直接从设备分区备份,均能获得原厂匹配的引导文件。配合Firehose工具和9008端口通信,即可实现分区级读写与救砖恢复。本文从启动链路原理出发,对比两种获取路径的适用场景,并针对驱动识别、文件校验、分

weixin_30175731的博客 421

进制转换方法

进制转换 在网络中传输的各种信息都是靠二进制传输的,进制分为 二进制、八进制、十进制、十六进制 二进制:0、1逢二进一(二进制转十进制) 1011011100=129+127+126+124+123+122=512+128+64+16+8+4=732 十进制:0 1 2 3 4 5 6 7 8 9 逢十进一 110 (十进制转二进制) 110/2=55—0 55/2=27—1 27/2=13—1 13/2=6—1 6/2=3—0 3/2=1—1 1/2=0—1 1101110 十六进制:

q2479529344的博客 5609

ADS RFpro 射频阻抗仿真步骤

导入器件后,在库里面选取器件的对应模型,如图所示我们选取10pf 系统自带的村田模型。选取网络上的器件,拖入到下面component Models。导入成功后,截取需要仿真的区域(不截取仿真时间会非常长),可以生成对应如下原理图,通过原理图继续调整仿真。图上找到需要仿真链路上的网络,右键设置为信号。的叠层信息,按照PCB板厂提供信息填写完整。选择仿真的频率范围和频点数,生成如下图的RFPro仿真界。,然后再把GND也添加到下面。按图设置截取需要仿真的部分。添加成功后 网络就有了,15 双击run开始仿真。

m0_72954480的博客 3217

商店销售预测(回归&随机森林)

通过准备线性回归的数据,我们发现了一些有趣的见解,包括周末的销售增长,公共部门支付工资时的销售增长,以及11月和12月的销售增长。如果我们选择包括这些,我们可能会得到更好的结果,但在这个时候,我们不会用它来做任何预测,而是将转向另一种可能给我们更好的结果的技术。在Kaggle竞赛中,要求我们应用时间序列预测,根据厄瓜多尔大型杂货零售商Corporación Favorita的数据预测商店销售情况,建立一个模型,准确地预测在不同商店销售的商品的单位销量。在快速查看我们的训练数据集之后,我们可以看到有很多零。

qq_45791012的博客 4750

二进制 八进制 十六进制基础讲解

二进制:10 等于 二进制1010 下面用图讲解 10 9 8 7 6 5 4 3 2 1 1010 1001 1000 111 110 101 100 11 10 1 八进制:10 等于 八进制12 下面用图讲解 10 9 8 7 6 5 4 3 2 1 12 11 10 7 6 5 4

qq_39657769的博客 1万+

PADS VX2.4差分对设置避坑指南:常见错误与解决方案

本文深度解析了在PADS VX2.4中进行高速PCB设计时,差分对设置的核心要点与常见陷阱。针对Layout规则设置、Router布线实战中的阻抗控制、线长匹配等关键环节,提供了具体的避坑指南和解决方案,帮助工程师确保信号完整性,提升设计质量。

weixin_29216049的博客 359

二进制(通俗简要版,一看就会)

进制、二进制,通俗易懂

ssh1213335652的博客 3万+

华为云Stack的学习(三)

LVS是四层负载均衡,建立在OSI模型的传输层之上,所以效率非常高。NAT模式的转发主要通过修改IP地址(位于OSI模型的第三层网络层)实现转发。DR模式的转发主要通过修改MAC地址(位于OSI模型的第二层数据链路层)实现转发。云服务框架中使用的DR模式。域名解析服务器分为管理侧(OM)和租户侧(Tenant)**DNS-OM:**作为云服务的本地DNS服务器,为云服务提供域名解析服务,并代理公网域名的解析。

Ciyaso的博客 8562

量化投资进阶:Fama-French三因子模型实战解析与Python实现

本文深入解析了Fama-French三因子模型,并提供了完整的Python实战指南。文章阐述了该模型如何通过引入市值因子(SMB)和价值因子(HML),对传统CAPM模型进行重要扩展,以更精准地解释股票收益来源。详细演示了使用Python获取数据、执行回归分析并解读结果(包括关键的阿尔法α)的全过程,并探讨了该模型在量化策略构建、风格诊断和业绩归因中的核心应用。

yog99的博客 1127

(大神分享)一张图带你理解二进制和十进制、八进制、十六进制之间的转换

转眼间今天又是五一劳动节了,作为程序员,我没有选择出去玩,出去浪,而是选择在家研(kan)究(kan)技(dian)术(ying),其实在这么一个盛大的节日里,不想出去也主要是考虑到人群的密集度,今天到处都是高并发状态,稍不留神就会被挤掉。 回想自己刚进入这一行的时候,自己当时一开始也是很菜鸟,连二进制怎么计算,怎么转换等等这些都不了解,更谈不上其他进制的计算和转换了,但是随着自己技术的积累,再...

欢迎来到Jacky的猿圈 6万+

扫地机器人行业 企业篇-产业总部地理分布

中国扫地机器人产业呈现区域集聚特征,广东省以13家企业领跑全国,其中深圳独占9家(如大疆、云鲸智能等),佛山、广州、东莞各有分布。江苏省6家企业主要集中在苏州(科沃斯、追觅科技等)。北京聚集了石头科技、小米等4家品牌。浙江、山东、湖南等地也有代表性企业分布。国际品牌方面,美国iRobot、韩国三星/LG、日本松下等均在各自国家设立总部,而戴森、飞利浦等欧洲品牌则将中国运营中心设在上海或苏州。值得注意的是,部分品牌如由利、宝家丽虽为外资起源,但主要运营实体已落户中国。

智能硬件研发,欢迎交流 362

深入Delphi二进制世界:用IDR揭开编译代码的神秘面纱

你是否曾经面对一个Delphi编译的程序,却无法理解它的内部逻辑?或者需要分析一个古老的Delphi应用,但源代码早已遗失?这正是许多开发者和安全研究人员面临的现实困境。今天,让我们探索一个能够解决这些问题的强大工具——IDR(Interactive Delphi Reconstructor),一款专门用于Delphi二进制文件反编译的开源神器。 想象一下,你手中有一个只有EXE文件的Delph

gitblog_00947的博客 137

【AutoSAR】【诊断栈】传输层CANTP

一、功能介绍 数据包发送放拆包分段发送 数据包接收方重组 流控 错误检测 二、参考协议 ISO 15765-2 三、数据帧格式 1、协议数据单元(PDU)格式 2、协议数据单元 - PCI格式 四、数据帧传输 1、单帧传输 CAN帧数据长度小于8字节(包括PCI信息) 无流控握手 PCI包含帧类型、数据长度和数据域 未使用字节填充 2、多帧传输 数据长度超过8字节 流控握手 定时控制 CAN帧类型包括: 首帧 流控帧 后继帧 3、多..

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 1554

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

逆向工程中的符号侦探:用objdump揭开二进制世界的神秘面纱

本文深入探讨了objdump工具在逆向工程中的关键作用,详细解析了如何使用objdump进行符号表分析、反汇编技术和节区头部分析,帮助安全研究人员揭开二进制文件的神秘面纱,识别潜在漏洞和恶意代码行为。

websocket5live的博客 161

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

在计算机的电路运算中二进制数,让我们揭开计算机运算的神秘面纱,二进制运算的秘密...

娃娃问我“粑粑,计算机怎么这么厉害,它是怎么知道1+1=2的呀,它也有大脑吗?”我微微一笑,回答道“是啊,计算机有CPU处理器,它专门负责电脑的计算工作呀。”娃娃似懂非懂的点了点头,若有所思的走开了。是啊,我的回答并没有错,可是刨根问底,CPU又是怎么工作的呢?它到底是怎么计算1+1的呢,回想起当年学习的数字电路知识,我想有必要来揭开这层神秘的面纱,为大家科普一下计算机的计算原理,这个一定要从二进...

weixin_39631445的博客 421

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

探秘代码的后花园:xiosec逆向工程工具集

探秘代码的后花园:xiosec逆向工程工具集 在软件开发的最深处,有一群探索者,他们揭开二进制世界的神秘面纱,解构程序的每一寸逻辑——这就是逆向工程师。今天,我们为您推荐一个强大的开源宝藏——xiosec逆向工程工具集,它是一个综合性的工具箱,专为那些勇于深入数字迷宫的人准备。 项目介绍 [xiosec逆向工程工具集](https://github.com/xiosec/Reverse ...

gitblog_00148的博客 398

揭开计算机运行的神秘面纱:它到底是如何工作的?

现代计算机之父-- ​冯・诺依曼约翰·冯·诺依曼(John vonNeumann,1903年12月28日—1957年2月8日),出生于匈牙利布达佩斯,匈牙利犹太裔美籍数学家、计算机科学家、物理学家和化学家,美国国家科学院院士,生前是普林斯顿高等研究院教授[1]。约翰·冯·诺依曼早期从事算子理论、共振论、量子理论、集合论等方面的研究,后期转向研究自动机理论研究 [6]。指令是带有指示性、要求特定动作或操作的命令、指示或信号。指定本身也是一个数字,用二进制形式保存在内存的某个区域内。

2301_80543957的博客 2358

从零开始学编译原理:揭开代码翻译的神秘面纱

在计算机科学的广阔天地里,编译原理犹如一座神秘的宝藏,它是连接人类智慧与机器语言的关键纽带,默默支撑着整个软件世界的运转。对于渴望深入探索计算机底层奥秘的学习者来说,从零开始学习编译原理,不仅能揭开代码翻译的神秘面纱,更能为编程之路打下坚实的基础。接下来,就让我们一起踏上这场充满挑战与惊喜的学习之旅。

wjy__wjy_的博客 892

揭开JVM的神秘面纱

JVM,很多人都对其望而生畏,今天,就让我们一起来揭开JVM的神秘面纱。

qq_33534139的博客 740

揭开补码的神秘面纱

揭开补码的神秘面纱 1.补码本身具有幂等性:该特性决定我们虽然运算使用补码,但是通过两次补码可以回到原码; ((X)补)补=X a+b=(a补+b补)补 幂等性:相同操作重复执行,并能获得相同结果。这些操作不会影响系统状态,也不用担心重复执行会对系统造成改变。比如原码的补码再进行补码操作就会回到原码。 2.补码解决了正0 负0的二义性,使0的表示得到统一; 正零:00000000 负零:...

weixin_44502896的博客 651

C生万物 | 揭开【整型提升】神秘面纱

什么是整型提升?不同类型的数据在内存中究竟是怎样变化的,本文让我们一起揭开🔥整型提升🔥的神秘面纱

做技术人 · 产优质博客 · 找好工作 1553

揭开gRPC神秘面纱

一、什么是RPC RPC(Remote Procedure Call): 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket...

chenwr2018的博客 1261

揭开计算机的神秘面纱

写在前面的话:从接触电脑以来,就一直对电脑充满好奇。当电脑连接上电源,按下开机键,我们就可以做所有我们想做的事情,打游戏、写文章、看电影、搭建web服务器、自己写程序等等。随着接触电脑的时间越长,反而对电脑更加的陌生,不断的问自己,计算机到底是怎么组成的?为什么就能够实现这些功能?如果让我穿越回多少年前,该如何搭建一台电脑?恰好这几天读完这本书《code:the hidden Langu...

161

kubernetes(五)揭开 kubeadm 的神秘面纱

一、部署 kubernets 工具的演进 其实,Kubernetes 作为一个 Golang 项目,已经免去了很多类似于 Python 项目要安装语言级别依赖的麻烦。但是,除了将各个组件编译成二进制文件外,用户还要负责为这些二进制文件编写对应的配置文件、配置自启动脚本,以及为 kube-apiserver 配置授权文件等等诸多运维工作。 在 Kubernetes 项目发布初期,它的部署完全要依靠一堆由社区维护的脚本。 后来,各大云厂商一般使用 SaltStack、Ansible 等运维工具自动化地执行这些步

qq_22648091的博客 1980
上一篇: win32汇编快速入门
下一篇: 设置与获取窗口标题文本
deepfuture
博客等级 码龄17年 210粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值