汉扬编程 C语言入门 零基础学习c语言五 | 进制之间的那些事

零基础学习c语言五 | 进制之间的那些事

在上一章,我们讲了c语言的基本数据类型,这章我想讲讲进制之间的转换,这章很重要,我后面的内容其实都离不开这基础,所以我想有必要先把这章讲了

零基础学习c语言五 | 进制之间的那些事

零基础学习c语言五 | 进制之间的那些事

小钱嵌入式零基础C语言教学

零基础学习c语言五 | 进制之间的那些事

什么是数制数制,是指用一组固定的符号和统一的规则来表示数值的方法。

零基础学习c语言五 | 进制之间的那些事

举个例子,在生活中,最常用的是十进制,其是由阿拉巴数字0,1,2….一直到9组成,逢十进一。

零基础学习c语言五 | 进制之间的那些事

有的人可能看了觉得:那太简单了。

是的,太简单了,以至于很多人并没有真正的理解十进制。所以我这里,需要带大家用不同的思维看待十进制。

十进制首先我们以十进制的12为例,在这里我们要将他们拆成1和2看。如果分高低位看的话,很明显1会是高位,2是低位,因为低位从0一直记到9再加1之后,才会有十位的那个1,在这里1是高位

那么我们再看看12是怎么来的,12是不是应该等于1×10¹+2×10º

为什么要这么算呢?

因为逢十进一,十位上的数,是不是应该表示的是计了多少个10次了。举一反三,那个213想想是怎么算?

是不是应该是:2×10²+1×10¹+3×10º

十进制总结:越右越是低位逢十进一计算的例子:213 = 2×10²+1×10¹+3×10º每一个位可以是0-9

二进制通过上面对十进制的理解,二进制我们可以触类旁通了。

二进制,顾名思义,逢二进一,那么他的每一位就只能是0或者1了,因为当这个位是1,再加1的话,就满二了,那么就会让高位加一

举个例子:二进制的 0101

有人看到这个数可能蒙了,这是多大?

学懂上面是十进制的话,就很好理解到0101是多大了,是不是应该就是 0×2³+1×2²+0×2¹+1×2º = 5

也就是这里,我们很好的将二进制转换为了我们所熟悉的十进制了,由于是二进制,逢二进一,所以很长的二进制可能表示的数,相对于十进制来说,并没有那么的大。

在计算机中,各种数值最终都会是以二进制0或者1进行存储的,有了这章的铺垫,在以后的章节我讲计算机的内存是如何存储数值的时候,大家就不会一脸懵逼了[呲牙],关注我,后面的章节不错过[来看我]

二进制总结:越右越是低位逢二进一计算的例子:0101 = 0×2³+1×2²+0×2¹+1×2º = 5每一个位可以是0或者1

十六进制在嵌入式的领域中,同样很常用到的一种进制是十六进制,通过前面对二进制十进制的学习,相信大家对十六进制也能自己触类旁通出来了。

但是有可能有的人就会问了,十六进制那岂不是每一个位都可以是0到15,但是很明显我们不能把15圈起来挤在一个位上。

这里就有规定了,在十六进制中,A代表的是10,B是11,C是12,D是13,E是14,F是15,问题一下迎刃而解了,这里用大写的A到F和小写a到f都是可以的。

在这里细心的小伙伴可能还会问,那么假设我编程写了一个18,那这个数是算作是十进制还是十六进制,因为18,如果是十六进制的话,那他所表示的对应十进制数可不是18,而是1×16¹+8×16º = 24。

所以这里还有一个规定,一般我们在写一个数是十六进制的时候,我们都会在十六进制数的前面加上0x,来表示这个数是十六进制数,在上文中,我们就应该写成0x18

十六进制总结:越右越是低位逢十六进一计算的例子:0x18 = 1×16¹+8×16º = 24; 0x1F = 1×16¹+15×16º = 31;每一个位可以是0—F十六进制二进制十进制对应表

以上就是常用的三种进制了,其实还有一个八进制,但是据我的经验,八进制用的很少很少,通过上面的学习,我相信大家也已经能触类旁通[机智],照葫芦画瓢了,以后碰到八进制也不怕,本章可以收藏起来,有需要时翻阅

我是小钱嵌入式,会不断的和大家分享嵌入式相关的内容,智能化时代的到来,促就了未来一定是个全民编程的时代 ,如果你觉得我的分享对你有些帮助,请不要吝惜你的点赞和关注[心]原创写作不易,兄弟姐妹们的点赞和关注,就是我分享最大的动力,谢谢![来看我],欢迎在评论区和我一起讨论。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6545.html

VBA中的If-Then-Else语句

50多个C/C++项目你做过那些?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部