二进制权值计算 lsb_什么是二进制?

9b43397c76d44bc2aeb7dd3e369349dd.png

我们生活中经常会听到二进制这个词,但很多没有接触过计算机基础知识的人对此摸不着头脑,啥叫二进制?bd会告诉他们,二进制数就是一串由0和1组成的数字,计算机的底层零件用通电来表示1,断电表示0,这样子便于存储和处理数据......blabla......

bd上对二进制的讲解确实没有多大问题,但对于完全没有计算机基础知识的人来说,这样子的解释还是显得有点晦涩难懂。今天,我就用通俗易懂的语言给大家讲讲什么叫二进制。

说到二进制,我们会联想到十进制,也就是我们平常使用的数字。为什么叫十进制呢,你就这么记住就好了,因为它由十个数字组成,分别为0-9,然后左右两位之间的倍率是10。我们举个例子,369这个数字可以拆成3*100+6*10+9*1 = 3*10^2+6*10^1+9*10^0,也就是说3的大小其实是3*10^2,6的大小其实是6*10^1,而9的大小其实是9*10^0,依然是9。最后我们把这三个数的真实大小(为了方便讲解,我把一个数的十进制形式叫做真实大小,但其实十进制和二进制并没有高低优劣之分,只不过一个为大众所熟知,一个没有而已)相加,即得到了369这个结果。

看到这,你肯定会说,你这不是画蛇添足嘛!明明只要把3、6、9给拼一块就是它的最终大小了,干嘛费那个劲来计算它的大小?

我们当然不用那么麻烦地来计算一个十进制数的真实大小,因为我们平常生活中用的就是十进制数。但现在,我给你一串二进制数,你就不能直观地判断出它的真实大小了,这个时候,我们可以通过换算来把二进制数转换为十进制数。

现在你已经知道二进制为啥叫二进制了,我们可以给它下一个通俗易懂的定义。它是由0和1组成的一串数字,并且左右两位之间的倍率为2。

现在给你一串二进制数101110001,你能算出它的真实大小(十进制形式)是多少吗?

为了方便起见,我们从最右边的位开始算,并把各个位的真实大小相加,结果=1*2^0+1*2^4+1*2^5+1*2^6+1*2^8(省略了值为0的位,因为0与任何数相乘的值仍为0)=1+16+32+64+256=369。所以我们得出一个结论:(369)10=(101110001)2,即369这个十进制数和101110001这个二进制数是完全相等的,只不过是表示的形式不用而已。

学会了把二进制数转化为十进制数,那么把十进制数转化为二进制数又该如何操作呢?(该内容有点晦涩难懂,可直接跳过)

我们不难发现,二进制数左边的位的权值是右边的位的权值的两倍,而最右边的位的权值为1,所以从右往左看,各个位的权值依次为:1,2, 4, 8,16, 32, 64, 128, 256, 512......,所以当一个位的值为1时,表示这个位的值就是它的权值的大小,而当一个位为0时,表示这个位的值为0。

当要把一个十进制数转化为二进制数时,我们采取的策略是把它一步一步拆分。

我们首先观察一个这个数离哪一个位的权值最近,且这个位的权值要小于这个十进制数。举个例子,有一个十进制数150,我们发现比150小的权值中128是最大的,所以权值为128的这个位的值是1,此时还剩22。我们又发现比22小的权值中16是最大的,所以权值为16的位的值是1,还剩6。我们发现比6小的权值中4是最大的,所以权值为4的位的值是1,还剩2。我们发现比2小的权值中2是最大的,所以权值为2的位的值是1,没有剩余了。没有被选中的位的值全部设为0。

所以150最终可以转换为10010110。

相信你对进制这个概念有了进一步的认识,可能你会问,既然有二进制,那么有没有三进制呢?这是一个好问题!三进制当然存在,我们可以参考上面十进制和二进制的特点,自己“创造”一个三进制出来。首先,它是由0、1、2三个数字组成的一串数字,这个没有任何问题,然后,左右两位之间的倍率是3,这个也没有问题。然后,我们随便写一串三进制数来练练手。举个例子,20121021是一个三进制数,把它转换为十进制数?So easy!

从右往左计算,结果为1*3^0+2*3^1+0*3^2+1*3^3+2*3^4+1*3^5+0*3^6+2*3^7=1+6+27+162+243+4374=4813。

现在对进制这个概念是不是很熟悉了?是的话可以接着看下面哦。我将普及一下关于文字如何存储在计算机中的问题。

我们每天都在屏幕上读取文字信息,但你有没有想过文字是如何存储在计算机中的?

其实计算机(几乎所有包含处理器的电子设备都可以称为广义上的计算机,包括手机、平板电脑、PC、空调电路板、计算器、电饭锅电路板等)采用了映射的策略。计算机中使用了一种叫做字符集的东西,字符集有很多种,常见的有utf-8、gbk等。每一种字符集会对字符进行编号,比如1号对应'a'这个字母,2号对应‘6’这个数字,10086号代表‘我’这个汉字,1314号代表‘の’这个日文。当我们要在计算机存储一个文字时,计算机会存储指定字符集中该文字对应的编号(二进制形式)。不同的字符集中各种映射关系是不同的,因此,计算机之间进行信息传输时,要向对方指明使用的字符集,否则可能会产生乱码。

关于二进制的讲解大概就这么多。

常年潜水,突然想到可以利用自己所学的一点知识来给人指点迷津,遂作此文,写的不好请见谅。

(图片来源于网络,侵删)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值