资讯专栏INFORMATION COLUMN

进制转换的原理

Tecode / 2028人阅读

摘要:如果一个二进制数从低往高第位是,我们希望把它转换为的情况,那么我们把这个二进制数的末尾抹掉。对这个抹掉了尾巴的二进制数十进制来说就是原数除以二之后的商,我们继续的做法,把它除以,看余数。

进制这事儿,说到底就是位值原理,即:同一个数字,放在不同的数位上,代表不同大小的数。例如:十进制中,百位上的1表示100,十位上的1表示10.十进制之中,每个数都可以被拆开:123=1×100+2×10+3×19876=9×1000+8×100+7×10+6×1这个事情先搞清爽,然后我们就可以为拓展进制做准备了:试回答这个问题:为啥相应的数位是1000、100、10、1?为啥不是4、3、2、1?答:满十进一,再满十再进一,因此要想进到第三位,得有10×10;第4位得有10×10×10这样我们就知道了,对10进制,从低位到高位,依次要乘上:10^0(10的0次方,后同),10^110^210^3……下面我们开始换进制玩儿:把十 进制换成 二 进制也就是把10换成2那么我们得到:对2进制,从低位到高位,依次要乘以2^0,2^12^22^3……也就是1、2、4、8、……https://pic1.zhimg.com/50/v2-6b1d6c779d2c6ed6e84013c432f72d69_720w.jpg?source=1940ef5c"; data-caption="" data-size="normal" data-rawwidth="1920" data-rawheight="1080" data-default-watermark-src="https://pic1.zhimg.com/50/v2-170b434ad77dcd40b2dc446e801ef92c_720w.jpg?source=1940ef5c"; class="origin_image zh-lightbox-thumb" width="1920" data-original="https://pic1.zhimg.com/v2-6b1d6c779d2c6ed6e84013c432f72d69_r.jpg?source=1940ef5c";/>因此原来十进制咱们叫 十位、百位、千位……现在二进制其实是 二位、四位、八位……这样我们就能做十进制换二进制了:比如:二进制数1011=1×2^3+0×2^2+1×2^1+1×2^0=1×8+0×4+1×2+1×1=8+2+1=11(由于二进制中非零的数只有1,所以其实等同于:个位有数就加1,二位有数就加2,四位有数就加4……)接下来我们进行十进制往二进制的转换:比较小的数,直接通过拆分就可以转换回去比如13,我们数一数,1、2、4、8、16……,唔,不能包含16了,那就只能包含8。 13-8=5,5当中有45-4=1好啦,我们知道13=8+4+1接着把她对应回相应位置去,8是从低往高数的第4位,4是从低往高数的第3位,1是从低往高数的第1位于是13=二进制数1101https://pic2.zhimg.com/50/v2-e11e824ca9843598bc48debd325e832b_720w.jpg?source=1940ef5c"; data-caption="" data-size="normal" data-rawwidth="2093" data-rawheight="955" data-default-watermark-src="https://pic1.zhimg.com/50/v2-e6568a6f2378065c87abe15b6456f574_720w.jpg?source=1940ef5c"; class="origin_image zh-lightbox-thumb" width="2093" data-original="https://pic1.zhimg.com/v2-e11e824ca9843598bc48debd325e832b_r.jpg?source=1940ef5c";/>然后就多练习这个,反复练,让自己熟悉这个感觉:17=16+1=二进制1000119=16+2+1=二进制1001130=16+8+4+2=二进制11110……比较熟悉之后就可以看看高级的短除法化二进制了(不要偷懒哦!先去把前面的练熟!):粗鄙地来做的话,现在你按照书上说的短除法来试试,会发现它和你凑数得到的结果刚好是一样的,好神奇~以后就按这个做吧!想要知道其中的道理的话:(1)一个二进制数末尾是1,意味着一定是……+1,前面的每个数都是2的倍数,只有最后的+1不是所以一个二进制数末尾是1,意味着它对应的十进制数除以2一定是余1的。所以第一次除以2之后的余数,就是转换结果中的最后一位。(2)如果一个二进制数从低往高第2位是1,我们希望把它转换为(1)的情况,那么我们把这个二进制数的末尾抹掉。抹掉尾巴的二进制数,和原来的二进制数相比,每个数都往低位错了1位,相当于除以2.末尾的尾巴丢掉了,相当于我们把余数丢掉了。而这个除以2的步骤,刚好是(1)当中判断末尾是不是1的步骤,所以我们刚好可以继续做下去。对这个抹掉了尾巴的二进制数(十进制来说就是原数除以二之后的商),我们继续(1)的做法,把它除以2,看余数。……如此继续下去,就可以得到短除法的结论了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/126393.html

相关文章

  • Base64基本原理及简单应用

    摘要:编码原理编码之所以称为,是因为其使用个字符来对任意数据进行编码,同理有编码。本文学习网上资料整理而来,仅供个人学习使用,部分内容仅代表个人理解及思考。 1.什么是Base64 Base64是一种基于64个可打印字符来表示二进制数据的编码方式,是从二进制数据到字符的过程。原则上,计算机中所有内容都是二进制形式存储的,所以所有内容(包括文本、影音、图片等)都可以用base64来表示。 2....

    zzir 评论0 收藏0
  • Java编程基础02——Java语言基础

    摘要:所以就想把一大串缩短点,将二进制中的三位用一位表示。以可以大写也可以小写开头版本可以表示二进制了八进制的数据表现形式由组成。结果把系数基数的权次幂相加即可。因为语言采用的是码来编码的。 1_(常量的概述和使用)* A:什么是常量(constant) 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的...

    pakolagij 评论0 收藏0
  • 浅谈JavaScript位操作符

    摘要:有符号的右移操作符由两个大于符号表示这个操作符的含义就是将数值的位向右移指定的位数同时保留符号位的值正负号标记有符号的右移操作符与左移操作符刚好相反比如向右移动位就是同样的在移位的过程中也会出 位操作符的基本概念 因为ECMAscript中所有数值都是以IEEE-75464格式存储,所以才会诞生了位操作符的概念. 位操作符作用于最基本的层次上,因为数值按位存储,所以位操作符的作用也就是...

    fasss 评论0 收藏0
  • C语言:深度刨析数据在内存中存储——浮点型数据

    摘要:一浮点型数据及其取值范围二浮点型数据在内存中的存储一小数的二进制十进制转二进制整数部分与整数原理相同,按照整数二进制转换的规则,写成对应的二进制数。全为表示浮点数的最大值或者最小值。 ...

    YanceyOfficial 评论0 收藏0
  • 短链接原理分析

    摘要:举个例子,第一个进来的链接发号器发号,对应的短链接为,第二个进来的链接发号器发号,对应的短链接为,以此类推。这样一来会导致一条长链接对应多条短链接的情况出现,不仅浪费存储空间,又浪费发号器资源。 1. 什么是短链接 顾名思义,短链接即是长度较短的网址。通过短链接技术,我们可以将长度较长的链接压缩成较短的链接。并通过跳转的方式,将用户请求由短链接重定向到长链接上去。短链接主要用在诸如微博...

    SexySix 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<