-
因产生二进制数太多,看起来很不方便,且容易出错,故生成16进制数。一个16进制数,它就是4位二进制数。
2020-03-28 10:55:10CPU最终执行的是经编译器和链接器生产的可执行文件。 编译器产生的是源程序的机器码。例如:0x7f 0x86 0xae 0xc4。 0x是16进制的标示符,它...7f 86 ae c4 是16进制数,转为二进制数是01111111 10000110 10101110 11...CPU最终执行的是经编译器和链接器生产的可执行文件。
编译器产生的是源程序的机器码。例如:0x7f 0x86 0xae 0xc4。
0x是16进制的标示符,它表示后面紧跟的数是16进制表示。
这时候你就疑惑了,不是说机器码是二进制吗?这都是16进制是什么意思啊?
7f 86 ae c4 是16进制数,转为二进制数是01111111 10000110 10101110 11000100
其实16进制和二进制是等价的,可以很方便的转换。
你看下面这个二进制数
0100 1100 1010 1111 这是一个16位(这个16和16进制没有关系,指的是由16个二进制数组成)的二
进制数,为什么要每4位用空格分开呢?你看4个二进制位,能有多少种不同的组合呢?用一个值代表一个状态,那么4个二进制位可以代表 2^4=16 种状态,是排列组合的知识。
16种组合:0000,0001,0010,0011,0100,0101,0110,0111,1000,,1001,1010,1011,1100,1101,1110,1111
是不是2的4次方,16种?如果我把这16种不同的组合分别用:0123456789abcdef来表示。
那上面的二进制数我就可以把它表示为:0100=4 1100=c 1010=a 1111=f
那是不是上面一长串的二进制数就表示成了4caf?如果想把4caf转化为二进制,那只需要把每位的16进制数转化为相应的4位二进制数即可。是不是很方便转换?所以说16进制和二进制是等价的。
只不过显示在屏幕上一串二进制的话,人类看起来很不方便。一是很容易看错,二是在屏幕上显示的长度也过长。所以计算机上的二进制数一般都是用16进制来表示,以方便人们的理解。
当然也有三位二进制数一组的八进制表示形式,原因也是相同的。那为什么不用人们更容易理解和习惯的十进制来表示呢?因为十进制和二进制没有直观的对应。一个16进制数,它就是4位二进制数。每4位二进制数就对应一个16进制数。但二进制和十进制之间没有这样的直观转化方式。习惯和熟悉之后,你很容易把二进制转化为16进制。也很容易把16进制转换为二进制,它们之间的位数转换也是固定的,直观的。两个16进制数,就是8位二进制。三个16进制数就是12位二进制数。4个16进制数就是16位二进制数。这种转换是非常简单和直观的。相对来说,十进制和二进制之间的转换就没有这么简单和直观。所以这就是为什么计算机中的二进制数常用16进制或八进制来表示。
-
什么是二进制,为什么要用二进制
2019-11-18 15:26:13计算机最早是机电设备,一般用十进制计数,比如用齿轮数来代表十进制,再到晶体管计算机,晶体管计算机只用开/关两种状态就可以代表信息,就叫二进制,意思是“用两种状态表示”。 (如果你觉得两种状态不够多,那也...什么是二进制?
计算机最早是机电设备,一般用十进制计数,比如用齿轮数来代表十进制,再到晶体管计算机,晶体管计算机只用开/关两种状态就可以代表信息,就叫二进制,意思是“用两种状态表示”。
(如果你觉得两种状态不够多,那也没错,量子计算机可以了解一下)为什么要用二进制?
晶体管的确可以不只是开/关,也可以让不同大小的电流通过,一些早期的电子计算机就是三进制的,有3中状态,甚至5进制,5中状态。
但问题是,状态越多,越难区分信号,如果手机快没电了或附近有电噪音(电磁炉啥的),这时信号就可能会混在一起。晶体管每秒的变化次数可以高达百万次,然后接收的信号杂乱,也就是晶体管这时不知道要处理哪个信号了。
所以尽量把两种信号分开,只用 “开” 和 ‘关" 两种状态,可以尽可能的减少信号干扰问题。
如图:
计算机使用二进制的另一个原因是:有一整个数学分支的存在,专门处理真和假(0,1),它已经解决了所有运算法则,叫做 “布尔代数”。布尔代数中有三个基本操作:NOT,AND和OR
NOT操作是把布尔值反转,把true进行NOT就会变成false,反正亦然。晶体管可以轻松实现这个逻辑,晶体管只是电控制的开关,有3根线:2根电极和1根控制线,控制线通电时,电流可以从一个电极流到另一个电极。可以把控制线当作输入,底部的电极当作输出。所以1个晶体管只有一个输入和一个输出。
那么晶体管怎么实现NOT呢?
大概知道就行了。。。其实程序员不太要考虑逻辑是怎样在物理层面实现的。
-
如何把二进制数化成十进制数_十进制数
2020-12-16 00:18:48把具体的一和二抽象出来,让它不附加其他含义能准确地表达出意思。在这里有一个例子一个苹果,一个菠萝,一个橘子。对三者进行数学上的抽象就得出来1这个概念。这个看起来很容易理解,但是如何准确定义什么是一在我...这个栏目是写着玩的,一开始是准备写数学分析的。但是后来学业繁忙,于是改成小学生数学看图识数了。因为大部分人都对数有了很准确的认识。比如一个苹果,两个梨。数就是对事物进行抽象。把具体的一和二抽象出来,让它不附加其他含义能准确地表达出意思。
在这里有一个例子
一个苹果,一个菠萝,一个橘子。
对三者进行数学上的抽象就得出来1这个概念。
这个看起来很容易理解,但是如何准确定义什么是一在我看起来是一件很困难的事情。而我处理的方法是把它看成一种范式,大家都认同这个是一,那这个就姑且当成一好了^0^~
类似的就有了23456789
什么是0呢?零是没有还是零本身这个含义?
我们一般不会说我有零个苹果这种话,虽然它就是字面意思。我没有苹果。
所以在日常生活中假使我这样说,那么我就是在表达我没有这个意思。所以,在这里零可以认为没有。也就是零就是零,不是其他什么。
这时候,0-9这十个数就基本意思清楚了。
但是这还不够,在小学生的眼中,零到九实在是太难了。毕竟他们教的是记忆而不是理解。
例子
一个人只会从零数到九而给出九个铅笔就不会说出这个是多少个了。
这是理解和记忆的偏差,这大概是他们接触的第一种比较难的抽象思维。
如何理解一个苹果和一个李子的关系其实真的很难。对我们来说很简单,但是把一和李子苹果换成其他呢?问题就来了,抽象与具体,一般与个别这种关系大部分人都分不清。当然就我接触到的人来说,他们时常犯这种错误。
和幼稚园的孩子其实没什么区别。
理解了数的关系后当然还准备理解他们的运算
自然数集不是一个封闭集,我多年没有看数分和数学书了,可能不是这个词但是应该懂我意思。
换句话说它会溢出
但现在不去做加减而去思考负数
怎样在不运算的情况下获得对负数的认识。
一个很想当然的例子是借债
就如资产负债表上那样写写画画,获得平衡
当然这也是运算了。
负数就好比如你有1个鸡蛋而我拿走了你两个鸡蛋一样,当然如果你没有两个鸡蛋我当然不可能拿走,但是这是片面地看待的。假定我认为明天你又获得了两个鸡蛋,而我暂且取走了你明天的鸡蛋,这样就从动态上说通了。一旦明天你有了鸡蛋你就得给一个鸡蛋我。而今天相当于你有且仅有负一个鸡蛋,相当于今明两天你鸡蛋少了两个。
和数学发展类似,仅仅思考一下就可以得出负数的含义,它是一种欠着的状态。甚至可以看作正数的共轭。我又开始乱用名词了。
这样就很好地得出了正负数的概念。至少在加减运算中,它自洽了。
随着数学的发展,是社会的发展。当然两者是互相关系。流水式的记账逐渐被复式记账法取代,借贷行业和数学共同发展着。
定义了加,和负数,减是不需要定义的了。
加是一种运算符,它代表数的加法运算。我想不出有什么好玩的事情。但要指出的是,虽然结果上看加上一个负数和减上那个数的绝对值是一回事但是表达的意思确实是不同的。
到了这里,一个在加法运算里自洽的集合就算完成了。接着可以定义乘法,乘法和加法是一个意思,两者是可以互相转换的。前提是加入小数集合,分数和小数是一种东西的两种表达方式。没什么意思。
乘法是一种累加,积分又是一种累加。只不过前者是有穷的而后者是无穷的。但是本质上都是一种东西。
毕竟有意思的是除法,它是乘法的反运算。那么从减法可不可以推导到除法呢?
例子
8/4=2 2+2+2+2=8
可以看出来是可以的。也就是说加法是最基本的可以推导出其他的来。当然也可以随便先定义除法把其他的推出来,但是从历史来看的确是加法最先。
在加入了小数集后加减乘除运算就都在集合内了。这是一个很重要很重要的集合,有很多有趣的性质。
在图形表示上,画数轴。这个就很直观了。
接着就是数学的第一次危机了。
我们来思考一下数轴,它看起来好像是填满了。
毕竟在正数的间隙中存在着无穷多的小数,无穷多就一定填满了吗?当然不是,因为数轴也是无穷的。
设想一下把所有整数集中到零和一的间隙中,他能被填满吗?
1.填满了,因为整数无穷多。
2.没有填满,因为0到1的间隙有无穷多个点。点不能填满线,因为线有无穷多个点。
这个时候要补充一个概念,无穷大比较。
无穷大也是可以比较的。
例如 lim x–0 1/x lim x–0 1/expx 就是两个不同的无穷大,对他们相除就可以比较了。
显然是第二个比较大。
仔细想一想就会知道,整数的无穷数量级就不是小数的无穷数级,因为他们不存在一一对应关系。所以即使是现在只加入小数的数轴,整数也不能填满相邻整数的间隙。
所以,现在数轴是空荡荡的。幽灵,一个数字上的幽灵在数学的天空上徘徊。。。。
洗澡去了,学过数学的可以看得出我这写的乱七八糟。本人是个渣,学的工科甚至不是理科,很久没看书了见谅。
7.12 8..22
-
diag开关什么意思_为什么是二进制
2020-11-23 02:35:38那么它是为什么使用二进制呢?是怎么完成各种功能的呢?又是怎么执行任务的呢? 带着问题今天带大家了解一下二进制。芯片中有数以亿计的晶体管,这些晶体管放大来看就是和普通电路差不多,普通电路就只有两种状态...上期讲到编译器将代码翻译成计算机能够理解的另一种语言,这种语言就是二进制。没错就是只有0和1两个数字没有别的了。那么它是为什么使用二进制呢?是怎么完成各种功能的呢?又是怎么执行任务的呢?
带着问题今天带大家了解一下二进制。芯片中有数以亿计的晶体管,这些晶体管放大来看就是和普通电路差不多,普通电路就只有两种状态要么开要么关,所以科学家将0对应电路关,将1对应电路开。数以亿计的开关就对应数以亿计的0或1。这就是为什么计算机中使用的是二进制而不是十进制了。
那二进制是怎么表达各种功能的呢?大家应该有听过电脑有32位和64位,那么这是什么意思呢?32位就是电脑的每个功能的表达都由32个二进制数组成也就是32个0或1组成就如图中所示,可以表达2的32次方,这个数字约等于43亿,也就是说可以表达近43亿种意思,比如说手机的亮度调节,声音的大小调节,王者荣耀的各种技能还有时间的秒数等等,但是这么大的数字用来表示时间还是不够用。计算机中的0秒是从1970-01-01 00:00:00开始计时的,到了2038年就会把这个数字用完,也就是到了2038年所有的32位的电脑都不能够再使用了。不过现在几乎都是64位电脑和手机了,所以大家不必担心这个问题。和32位一样,64位就是能表达2的64次方,这个数字约等于1844京(京=万亿),有更丰富的表达能力就比如屏幕的显示色彩能够更丰富更鲜艳。每组64位数都会调节64个开关电路来执行任务,就比如在一间房间中有64个灯泡对应64个开关,不同的开关组合就能够调节不同的亮度。
-
乘2取整法_十进制转二进制中的乘二取整是什么意思 为什么 有什么需要注意的么...
2021-01-17 15:46:05dao十进制转二进制是遵从版以下规则:权1、将整数部分辗转相除2,将余数倒序排列,即整数部分的二进制数。2、将小数部分辗转相乘2,将乘积的个位数部分正序排列,即小数部分的二进制数。推导过程如下:1、十进制0.25... -
logn是什么意思_二进制究竟有什么用?带你看看那些好玩儿的位操作
2020-11-23 02:35:37(给算法爱好者加星标,修炼编程内功)来源:小齐本齐计算机说到底就是 0 和 1,所有的数在内存中都是以二进制的形式储存的。而位操作,或者说位运算,就是直接对内存中的二进制位进行操作。位运算可以说是我们的基本... -
二进制里的「逢二进一」是什么意思
2012-07-25 09:28:46什么是二进制、为什么有二进制、二进制与十进制是什么关系,如何转换。 数是无穷多的,但是我们只有有限多个符号。因此我们需要使用有限多的符号来表示无限多的数。在这种表示的过程中,产生了进制。这段比较罗嗦... -
logn是什么意思_二进制究竟有什么用?现在还有用二进度写代码的程序员吗?...
2020-12-01 08:31:24计算机说到底就是 0 和 1,所有的数在内存中都是以二进制的形式储存的。而位操作,或者说位运算,就是直接对内存中的二进制位进行操作。位运算可以说是我们的基本功,今天这篇文章就从以下角度和大家一起玩转位运算... -
grouping="\3",这个数字是二进制的3 ,这里的 “二进制的3” 是什么意思?
2014-04-02 18:03:48书上看到的。。。。。。。。。。。。。。。 -
Verilog - 二进制数转换成BCD编码
2015-12-16 12:06:12二进制和BCD编码都是什么?这里所说的二进制,就是一个变量(整数)的实际值的意思,比如一个整数10,那么我们说他的二进制的值就是10,这个没啥好说的。 主要是BCD编码,在数据的传输中,数据都是以字节(byte)为... -
二进制的位数,字节、字符
2016-08-11 21:23:02二进制位数,也就是表达一个其他类型的数所需要的二进制数有几个,确定整数二进制表示中第一个1 的出现位置。 例如: 2的二进制为 10,占用2个二进制位 3的二进制为 11,占用2个二进制位 4的二进制为 100... -
Java 二进制转十进制
2020-03-23 23:30:02Integer.parseInt("",2)第一个参数是字符串,第二个参数是把前面的字符串解析为什么进制的数,这里的意思就是把前面的字符串解析为2进制的数,返回一个十进制的数。 Scanner scanner = new Scanner(System.in); ... -
二进制 字节 字符
2017-11-16 16:21:211.位数二进制位数,也就是表达一个其他类型的数所需要的二进制数有几个,确定整数二进制表示中第一个1 的出现位置。例如: 2的二进制为 10,占用2个二进制位 3的二进制为 11,占用2个二进制位 4的二进制为 100,占用... -
原码、反码、补码什么意思? 二进制、八进制、十六进制的负数表示?
2010-08-26 19:24:345转换成二进制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。 现在想知道,-5在计算机中如何表示? 在计算机中,负数以其正值的补码形式表达。 什么叫补码呢?这得从原码,反码说起。 原码... -
为什么补码的补码就是原码?二进制里为什么减一取反和取反加一等价?
2019-09-25 22:58:29首先先理解这句话的意思,“(1)补码的(2)补码就是原码”,其中第一个标注的"补码",就是名词补码,而第二个标注的"补码",是个代称,含义就是取反加一,这句话完整的意思是一个数...假设一个N位的二进制数,可表示的... -
关于如何由十进制整数转化成二进制及十六进制
2019-10-30 15:10:26二进制、十六进制这种也是会用到。接下来介绍一下如何将十进制转化为二进制及十六进制。 十进制整数转二进制: 十进制整数转换为二进制整数采用除2取余,逆序排序法。 什么意思呢?打个比方比如十进制整数100转化为... -
模拟二进制数据_模拟信号是什么 模拟信号数字传输原理介绍【图文】
2021-01-05 15:47:16模拟信号,模拟信号是什么意思 什么是模拟信号 主要是与离散的数字信号相对的连续的信号。模拟信号分布于自然界的各个角落,如每天温度的变化,而数字信号是人为的抽象出来的在时间上不连续的信号。电学上的模拟... -
整数二进制展开中数位1的总数
2018-08-01 01:05:56整数二进制展开中数位1的总数 前言 目前在,额,怎么说呢,回炉重造数据...,网上常见的算法是通过将数n二进制展开中的最低位1转置0来统计,此算法本文也会介绍(说是介绍其实是抄书啦),然邓老师书上又介绍了一... -
整数二进制展开中数位1的总数1
2018-08-01 01:29:00整数二进制展开中数位1的总数 前言 目前在,额,怎么说呢,回炉重造...,网上常见的算法是通过将数n二进制展开中的最低位1转置0来统计,此算法本文也会介绍(说是介绍其实是抄书啦),然邓老师书上又介绍了一个更有... -
二进制反码运算
2016-10-13 22:13:55最近在看计算机网络的相关知识,看到了运输层相关的知识,看到UDP检验和然而却看不懂什么意思!所以只好百度一下二进制 反码运算究竟是如何运算。 首先在计算机中所有的数据都是以二进制的形式...例如:18的二进制数是 -
三进制计算机_为什么计算机用二进制—布尔逻辑和逻辑门(一)
2020-12-17 09:10:08这周布尔逻辑和逻辑门内容,很重要...原因一幸运的是,只用 开/关 两种状态也可以代表信息,这叫二进制。意思是"用两种状态表示",就像自行车有两个轮,双足动物有两条腿,你可能觉得两种状态不多,你是对的!但如果... -
java实现给定一个十进制整数, 如何转成二进制形式? 如何转成十六进制形式?
2019-09-07 09:44:24我们买电脑的时候,都会知道,计算机有分为32位,64位,那么它们都代表什么意思呢? 这里所说的8位,16位,32位,64位指的都是计算机的二进制位数 8位最大255 16位65535 32位4294967295 64位大约是1.844674407E19 ... -
为什么计算机用二进制—(计算机基础课八)
2019-04-01 21:39:48上一篇:硅谷的由来—(计算机基础课七) 这周布尔逻辑和逻辑门内容,很重要,请细细品味。 ...幸运的是,只用 开/关 两种状态也可以代表信息,这叫二进制。意思是"用两种状态表示",就像自行车... -
python里的class solution是什么意思_剑指 Offer-求二进制中 1 的个数(Python 实现过程遇到的问题)...
2021-02-11 05:40:56输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路需要一个循环结构,不断对输入数进行 无符号 右移动。在循环体的结构当中,使用适当的过滤器(1 这个整数)对输入数进行 逻辑与(&)操作:... -
编程挑战赛之 二十进制数的加法
2014-01-23 11:52:38上面是题目要求以及界面 ...实在不理解calcute("Test","Test")和return"Test"是什么意思 百度了代码格式也没有搜到 下午在认真找一下吧 比较恶心的事题目只能提交一次。。。 贴上我的代码: #i -
背包问题 多重背包二进制之我见。
2019-10-06 17:51:11Q:所谓将num拆分成k个二进制数,那么为什么这些二进制数可以表示1~num的任意一个数? A:同拆分成num个01背包一样,它的原理是由num个1,每一个代表一个物体,用这些物体来表示num个物体的情况。那拆分成k个二进制数... -
题目:求某一个数的二进制表示中1的个数
2020-03-25 13:54:36这题有两个思路,最简单的就是把数转化为二进制表示,再一个一个数其中1的个数就是了,这解法没什么意思。 另一个思路就比较好玩了,是使用了位运算,直接上代码: while(n>0){ count++; n=n&(n-1); }... -
【BZOJ1192】二进制拆分
2019-06-06 13:29:28题目意思很简单,在这里 题意: 最少将n拆分成多少个数,可以凑出1到n的所有数字。 做题前: 这题是不是假题啊? 我用1 2 3 4 5 …这样凑吧 好像不太对啊。...但是为什么二进制拆分是最好的呢? 为什么不... -
为什么0.1无法被二进制小数精确表示?
2013-04-08 23:27:00这个问题困扰了我不少时间,最近有个比较清晰的认识,和大家分享。 这个问题首先要从数位表示法说起。...为什么12时表示一十二,而不是二十一,或者是一加二的意思呢?因为数字所处的位置是有特别...