ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

我对二进制的理解

2022-05-04 02:03:50  阅读:190  来源: 互联网

标签:10 进制 0010 二进制 0100 理解 100


我对二进制的理解

10进制

一个正常的人类,拥有10根手指,每根手指代表1个信息,那么两双手掌便可表达10个信息。1, 2, 3, ..., 10。
所以人类当初用 逢10进1,也就是10进制。
什么是逢10进1?即每超过9进一位, 9, 10, 99, 100, 999, 1000, ...
那么理解二进制难吗?其实觉得难只是不习惯罢了。

2进制

进位

通过上述解释,我们可以明白2进制就是 逢2进1
即0, 1, 10, 11, 100
那么我们来类比一下(两边在数值上并不相等,只是比较他们的进位方式)。
0 -> 1 相当于 0 -> 1
1 -> 10 相当于 9 -> 10
11 -> 100 相当于 99 -> 100
这仔细想想不难理解吧,我相信难的是怎么能一眼看出二进制数所表示的十进制数

转换到10进制

如果你刚刚接触2进制,给你一个二进制数让你转十进制,而且不能用纸笔。想必你应该会这么干。
如(1010)2
此时你的心中,1是1,10是2,11是3,100是4,101是5,1010是10。
过了一段时间,经过一遍遍迭代,你迭代出来了。但如果此时给你一个长一点复杂点的2进制呢?
如(1101011)2
现在给你纸笔,你肯定会用一个公式。从右往左,\(a_0\)代表最右边第一位数,\(n\)指最左边最后一位数的下标。(这里即6)
\(a_0*2^0 + a_1*2^1 + a_2*2^2 + ... + a_n*2^n\)
当老实的你写完这个式子的时候,已经过去30秒了,当然最后还是算出了答案。
那如果此时,我要求你在15秒内答出呢?那么可以用下面这个方法。

1	1	0	1	0	1	1
64	32	16	8	4	2	1

当前位如果为1时,则加上下面的数字,否则不加。
\(64 + 32 + 8 + 2 + 1 = 107\)
对这就是对上面那个公式的简化版本,相信聪明的你一定懂了。
那么这个方法和那个公式是什么原理呢,从而避免了迭代造成过多的时间开销?
(左边为2进制,右边为10进制)
首先1是1,10是2, 11是3,100是4
这实质上就是一个套娃,一环套一环。
一个10由两个01组成,即十进制的2
一个100由两个010组成,一个010由两个1组成,即十进制的4;
一个1000由两个0100组成,一个0100由两个0010组成,一个10由两个1组成,即8;
是不是感觉有点困惑?
这时可以画一个二叉树,括号里为10进制

2^3	            1000(8)
		/		\
	       /		 \
	      /	  	 	  \
	     /		   	   \	 
2^2        0100(4)	         0100(4)
	    /   \ 	         /   \ 
	   /     \	        /     \          
	  /       \            /       \
2^1   0010(2)  0010(2)      0010(2) 0010(2)
	  |  	  |            |       |
2^0	0001 	 0001	      0001    0001

此时将自然语言转换成了二叉树是不是对上面那个公式清晰了很多~~~
我当时觉得有点难理解的就是:(10)2为什么是(2)10,所以可以尝试结合这个二叉树深度思考下,再一睡觉,应该差不多就领悟了。
其它进制也是同理,主要你要熟悉到底什么是进制,就是逢N进1,但具体怎么领悟就是时间与思考的问题了。

10进制转换2进制

如果我还有业余时间的话会去谈谈我对“短除法”转2进制的理解。

第一次写这种内容,小学生写的,如果把你搞混了,实在抱歉:-(
当然如果有用,那就十分感谢啦~

标签:10,进制,0010,二进制,0100,理解,100
来源: https://www.cnblogs.com/littleblacklb/p/16220171.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有