理解十六进制最近有家长希望了解进制及进制转换的问题。因为在小学的奥数学习中,有关进制的题目把孩子搞糊涂了,所以云皓编程的老师对进制及其转换问题将用几篇推文来做个讲解。先看一个题假设xx部队编制规则如下:规则1.将16名战士组成一个“班”2.将16个“班”组成一个“连”3.将16个“连”组成一个“团”我们用字母A、B、C、D、E、F分别表示10、11、12、13、14、15。在执行特殊作战任务时,按照“团-连-班-单兵”的顺序进行管理。现在参加一次战斗派出了士兵总人数是“61E5”,请问,此次作战任务共派出了多少名战士?
上面的数字和字母代表的含义是:“团”的数量是6个,“连”的数量是1个,班的数量是E(=14个),单兵的数量是5个。以单兵为1个数量,班、连、团的战士数量分别是16、256、4096。每上升一个单位,总量就会以16为倍数增长。实际上,61E5是以十六进制表示的数字,将其转换成十进制数的公式如下:
故本次任务6-1-E-5共派出的战士数量是6×4096 1×256 14×16 5 = 25061个。什么是进制上面这个题目是一个16进制的问题,那什么是进制?进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法。我们在数学学习中基本以10进制为主。文章一开始提到的十六进制的进位方法是逢16进1,还有一个比较特殊的地方是除了数字0~9之外,还要使用字母A、B、C、D、E、F(字母不区分大小写)。A、B、C、D、E、F分别表示十进制的10、11、12、13、14、15。为了区分十进制,通常在十六进制前加0x,比如0x2AF5。那10进制数与16进制数该如何对应呢?我们看下表格:
下表我们采用16进制数来表示10进制的0-255
进制转换大家根据前面的原理,计算一下0x2AF5对应的十进制数是什么?0x2AF5换算成十进制:
直接计算就是:5 15×161 10×162 2×163 =10997windows操作系统中自带了一个计算器程序,可以在不同进制之间转换。
【查看】菜单中选择“程序员”
然后在十六进制模式下输入2AF5,然后在切换到十进制,即可看到10997。生活中的进制比如,我们平常接触到的数字通常都是十进制,其特点是:① 由0、1、2、3、4、5、6、7、8、9组成,比如25,14;② 进位方法,逢10进1。同样的道理,二进制的特点是:① 由0、1组成,比如上述十进制25,14分别对应的二进制数是11001,1110;② 进位方法,逢2进1。实际上,生活中也存在各种进制,比如:四进制:一年4季七进制:每周7天二十四进制:一天24小时六十进制:一小时60分钟、一分钟60秒我国在1958年以前一斤等于16两,1958年后改革为一斤等于10两。所以,1958年以前,半斤就是八两,八两就是半斤,这里的半斤八两就是十六进制关系。总结组成计算的逻辑电路中只能进行二进制运算,所以二进制是计算机的基础,计算机的底层运算都是基于二进制。但人阅读二进制数据毕竟不方便,所以就催生了十六进制。比如在网页设计上十六进制是很常用的。HTML使用十六进制的表示法来表示网页上的特定颜色,但本质上还是二进制。后续文章将继续介绍进制问题。“领悟编程的思想,逻辑背后的逻辑”