C语言十进制转换二进制(二进制转换十六进制方法)

数学不好,尽量简洁,逻辑理解,应该有比我写的这些更好的论文,请。基于简洁,同一个数的数次相乘被简写成在那个数的左上角放上一个小数字来代表那个数相乘的次数。举个例子,比如2坐上的n代表有几个2相乘,右下的1,2,3n指一直数到n,数出一共有几个2受制于

数学不好,尽量简洁,逻辑理解,应该有比我写的这些更好的论文,请。

基于简洁,同一个数的数次相乘被简写成在那个数的左上角放上一个小数字来代表那个数相乘的次数。

举个例子,比如2

C语言十进制转换二进制(二进制转换十六进制方法)

坐上的n代表有几个2相乘,右下的1,2,3…n指一直数到n,数出一共有几个2

受制于现实,传统计算机只能使用0或1表示数字来进行计算,但只有0和1所能计算的数字太少了,于是为了计算更多数字,需要通过0和1去表示更多数字,通过阿拉伯数字的经验,我们知道可以通过把数字排起来表示更多数字

C语言十进制转换二进制(二进制转换十六进制方法)

n仍是数有几个数的意思。

这样排列我们就能制作出长度任意而不同的排列数字块了,如果把每一堆数字块当成一个数字,我们就能通过排列组合排列出不相同的所有数字了,好耶!

那接下来的问题就是给予排列的数字块意思,也就是一块特定排列的数字块到底是什么数,比如:

C语言十进制转换二进制(二进制转换十六进制方法)

我们当然也可以随便给,比如上边这个0010001就是8,1000101是5,101101是7等等,但这样要记住的特定排列太多了,而我们想要尽可能方便直观简单快速的明白一个排列数字块到底是什么意思。

还是阿拉伯数字的经验,我们知道一个数排在另一个数前面代表这个数是几十几而再在前面排一个是几百几,也就是说:

C语言十进制转换二进制(二进制转换十六进制方法)

出于简洁,就排列三个数,但规律也逐渐出现了

我们用十进制拆分了十进制!甚至还能再拆

C语言十进制转换二进制(二进制转换十六进制方法)

拆的更离谱些!

C语言十进制转换二进制(二进制转换十六进制方法)

更大!更好!更快!更强!

C语言十进制转换二进制(二进制转换十六进制方法)

嗯…拆到这种程度应该差不多了,×1可以无限加,但也就只有阻碍阅读的作用了,还是撤了吧.都知道2就是1+1,3就是1+1+1,好像也没什么必要.但第一次拆分我们能发现100能被拆成10×10,那1000能不能被拆呢?也可以,只要是这种往10后面排0的都能被这么拆

C语言十进制转换二进制(二进制转换十六进制方法)

C语言十进制转换二进制(二进制转换十六进制方法)

简写中的2可以换成任何一个数字,10当然也可以

C语言十进制转换二进制(二进制转换十六进制方法)

于是上面的规律就可以简写成这样

C语言十进制转换二进制(二进制转换十六进制方法)

但通过这样写,我们就能将极其大的数写的很短

假如我们想写出100000000,只要写成10加上右上角的短数字8就行了

C语言十进制转换二进制(二进制转换十六进制方法)

并且还能写出”无限”,即是规律本身!

C语言十进制转换二进制(二进制转换十六进制方法)

通过将n的数字改变,我们就能写出任意一个由10×10组成的数字

C语言十进制转换二进制(二进制转换十六进制方法)

你可能会怀疑这不过是在做符号的游戏,而不一定能得出正确的结果.但如果你一个一个将其拆分,它们仍然还是原来的数本身,而只是换了个写法,仍是正确的

话 题 逐 渐 跑 偏,回到把用0和1构成更多数的目标上来,看看我们能用已经发现的规律做些什么

既然阿拉伯数字是这个规则,那它对其他数字应该也会有一些效果?不管了,直接套就完了!

C语言十进制转换二进制(二进制转换十六进制方法)

因为0乘任何数都是0,所以把它们省略掉

C语言十进制转换二进制(二进制转换十六进制方法)

那么,0010001就是11了!这样我们就能表达很多数了!比如:

– 0101=101

– 100111=100111

– 101010=101010

– ..?

这不跟没有一样吗喂,只是把前面的0省掉,这不跟十进制一模一样吗,啊,好吧,就是直接套的十进制啊…

虽然我们已经能表示很多数了,但跟十进制一比还是有很多数没能表现,为了完全实现计算的用途,还需要用0和1表现更多数才行.

该怎么办呢,怎么办呢,0和1是不能变的,目前能随便变的只有10,既然我们想让0和1表示所有数,那如0,1,2,3…这种最小的正整数是不能放过的,那就把10换成0试试?

C语言十进制转换二进制(二进制转换十六进制方法)

额…明显不行,这样不管加多少1或0得出来的数只能看最后一位,只有0或1啊,太少了

那换成1试试?

C语言十进制转换二进制(二进制转换十六进制方法)

嗯哼?好像可以!:

– 0101=2

– 100111=4

– 101010=3

– …

这样的确可以表示所有正整数了,但…0除了它自身完全没用上啊,0101=2那11也=2啊,而巨大的数写起来也太长了,会占用很多计算机资源的,有没有什么更好的办法?试试2!

C语言十进制转换二进制(二进制转换十六进制方法)

嗯?好像还可以?:

– 0101=5

– 100111=39

– 101010=50

– …

是能行啊!前面的位数能够组成所有的偶数,而最后一位的1加上前面所有的偶数组成所有的奇数,把10变成2也能组成所有数字!

这样每一位的利用效率是高了不少,但能不能再高效些?换成3?

C语言十进制转换二进制(二进制转换十六进制方法)

嗯,看起来还行,但它能不能表示小正整数?看看他能表示除了0以外最小的正整数就行,他能表示1吗?

C语言十进制转换二进制(二进制转换十六进制方法)

嗯,说了跟没说一样呢_(:з」∠)_,那看看2

C语言十进制转换二进制(二进制转换十六进制方法)

嗯?2没了?再往左排数字只能让它越来越大.看来3不行,4呢?

C语言十进制转换二进制(二进制转换十六进制方法)

哇,这没的更过分了,2没了,3都没了欸,这么下去没掉的数字只会是越来越多吧.

权衡之下,最有效的还是把10变成2啊,既然是把十进制的十变成二,那就叫二进制吧.

虽然0和1已经能表示所有正整数了,但我想让电脑计算两个数的时候还是不能直接写上233+666就行了的,因为最终电脑计算的还是0和1,我得把正整数变成0和1才行,怎么办呢…对了!因为二进制是由二乘出来的,我只要知道一个正整数里有几个2就行了,如果这个正整数是奇数那最后一位二进制数就是1,是偶数就是0

那怎么知道一个数里有几个2?把它分成两份就行了,一直分,直到分到每一份都是2为止!从数学上来讲就是除以2

C语言十进制转换二进制(二进制转换十六进制方法)

嗯,6里有3个2,就是110,再看看奇数

C语言十进制转换二进制(二进制转换十六进制方法)

呃…等等,我可没想过小数啊…但我们有规定过每一份都一定是2,那就把这7里的2给取出来先?然后还剩下个1

C语言十进制转换二进制(二进制转换十六进制方法)

嗯,只要把1取出来不就好了吗,7就是111啦

再看看这方法对大数字有没有效

C语言十进制转换二进制(二进制转换十六进制方法)

呃…56是由28个2组成的不错,但28个2…到底是2的几倍呢,要是硬算也不是算不出来,但如果56这个数再大了,恐怕就根本算不出来了,或者得拿着对照表一个个对,而更大的,许多许多位的则是根本没法算了,为了保证什么正整数都能计算,得再想个办法…再用2拆一次?到时候还原成十进制的时候再乘就好,也是基于2的,不违规.

C语言十进制转换二进制(二进制转换十六进制方法)

嗯…这方法的确可行,但这并没有让事情变得简单,反而更加麻烦了,7的二进制111乘2并算不出二进制,甚至算十进制都很费劲,难道就没有什么更好的方法了吗…..?

C语言十进制转换二进制(二进制转换十六进制方法)

啊,是啊,还能这么做,如果我把每一份都继续拆分,再还原

C语言十进制转换二进制(二进制转换十六进制方法)

还原,还原,还原,还原

C语言十进制转换二进制(二进制转换十六进制方法)

C语言十进制转换二进制(二进制转换十六进制方法)

然后再代入、还原

C语言十进制转换二进制(二进制转换十六进制方法)

通过对还原过程的观察我们发现,最终的1将会被还原成2的最大倍数,而在其次的1将会被还原成下一位2的倍数,最后一位为1,这对所有数都成立吗?

所有数被2乘,最终只会有两种结果

C语言十进制转换二进制(二进制转换十六进制方法)

而这两种都能被拆分成唯一的结果

C语言十进制转换二进制(二进制转换十六进制方法)

于是这对所有数都成立,而最终的1将是2的最大倍数,而向前的依次减一个2的倍数,从而只需要从后往前数余数,没有余数则为0,即可将十进制转位二进制。

感谢观看,起来走两步休息休息。

知识来源(真不是广告嗷谁会给没粉丝的人广告,我的知识除了符号以外基本上全是这本书给的,如果你能读懂我写的这摊,那你读懂这本书(我看完的部分,大概一半)是没问题的(我这篇的文风也是学这本书的)):

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/20034.html

(0)
nan
上一篇 2021-09-02
下一篇 2021-09-02

相关推荐

  • u盘安装原版win10系统教程(windows安装u盘)

    现在网上下载的系统基本都集成很多软件,让人各种无奈。我个人还是喜欢用官方原版的系统,好处是系统没有被修改过,有时候我们在安装一些软件的时候,提示一些DLL文件找不到、WINDOWSINSTALL服务错误等。这些都可以是因为你的系统不是

    2021-12-11 科技
    0
  • pdf文件无法打开怎么办(电脑无法查看PDF文件解决方法)

    对于电脑中经常会出现的文件格式,如doc、docx、Excel、PPT、AVI、MP4等,我们自然是很熟悉的,但是对于电脑中很少出现的一些文件格式,如PDF等,或许就有很多人是不熟悉的了!那么pdf是什么?pdf到底要怎么打开?接下来,我们就来详细地

    2021-09-02
    0
  • Win10与Win7共享打印机怎么连接(win10怎么共享win7打印机)

    如果在局域网中存在有Win10和Win7系统,其中Win10电脑又连接着打印机,这种情况下怎么让Win7系统也享有使用这个打印机的权限呢?小编今天就带大家了解Win10和Win7系统局域网共享打印机的设置方法,按步骤操作,一步一步来,希望

    2021-12-11 科技
    0
  • 移动手机实名制网上办理(线下办理手机卡的流程)

    在这个互联网火爆的时代,人们的一切活动内容仿佛都能在网络中完成,你可以网络相亲交友,也可以网络订餐网络购物,等等……早在几年前网信办就要求APP注册用户需进行实名认证,这是对用户信息安全的保障,各个平台也都上线了自己的实名认证方式!那么我们可以通过哪

    2021-11-10
    0
  • 怎么获取下拉词(百度下拉词获取方式有哪些)

    怎么获取下拉词?百度下拉词获取方式有哪些,爱惜日带你了解相关信息。用python抓取关键词固然方便,但是毕竟要会python才行。那么不会python的seo人员,如何批量获取百度下拉词呢?今天我们用seo常用软件-火车采集器去获取一下。如果你从中学到了,点个关注,至分享seo技能干货!一、获取百度下来词接口首先我们要获取百度下拉词的接口,打开百度,比如搜索seo,F12获取百

    2021-11-19 科技
    0
  • 电脑文件或文件夹的复制和移动及删除的操作方式(移动文件快捷键)

    今天又来跟各位学电脑基础的朋友们分享知识,让我们一起来学习吧。复制文件或文件夹在我们日常操作文件或文件夹的过程中,经常会遇到需要复制一些文件或文件夹什么的,下面我们就一起来分享一下常用的几种场景方式。1、场景一如需要复制的文件或文

    2021-12-11 科技
    0

发表回复

登录后才能评论