编程进制转换最简单方法(你敢说你学过编程)

计算机编程是用高级语言编写的一段段代码,他的目的方便人们编写。不过执行代码的计算机可是看不懂了,它只能识别0,1这两个数字。那么就0和1俩数字怎么表示复杂多样的信息呢?这就是我们今天所要讲的问题——进制!而计算机,只是用的其中一种:二进制。

编程进制转换最简单方法(你敢说你学过编程)(1)

进制,是一种进位制度。我们要用有限的标识符来表示无穷多的信息,那么用进制重复使用标识就显得很重要了(假设一个数字代表一个信息)。我们小时候在学习加减法时就说满十进一,逢十进一,这其实就是人们生活中常用的十进制。

那么进制有哪些呢?

常见的进制有二进制、四进制、七进制、八进制、十进制、十二进制、十六进制。当然,这里的常见这个概念不是很适当,进制这个东西是一种约定而已,目前人们在生产生活中存在的进制一定是有着他自己的实用价值。在一些情况下,一样可以存在三进制、五进制等等。小编认为,进制其实是一种思维方式,而不是一个死板的东西,不需要有客观实体的存在表现!

接下来,小编就主要介绍下二进制及其转换。为了方便大家理解呢,我把十进制转换为二进制的代码发出来,我想这对于刚接触编程尤其是不大了解进制的读者好处会更大。因为进制的原理都是一样的,希望大家能做到举一反三!

进制介绍
  • 二进制

    基本数字:0、1

    进借位规则:逢二进一;借一当二

    优点:便于电子电路特别是基于计算机中计算、存储的实现,尤其是逻辑判断。(在许多高级程序语言中,0为假,1为真)

    缺点:写出来的数字,长,很长,很长很长。不过对于机器来说,好像并不在意哈哈。

编程进制转换最简单方法(你敢说你学过编程)(2)

进制转换

进制之间的转换是一个很重要的知识

  • 十进制>>二进制(以19为例)

方法:我们用这个数(19)不断地除2,会得到一个商和余数,然后记下每次的余数,将余数按顺序从右到左排列,直到商为0后方可结束。比如,

19/2=9...1

9/2=4...1

4/2=2...0

2/2=1...0

1/2=0...1

大家可以发现一共有5个余数,所以按顺序从右到左排列,则为10011。值得注意的是,在看见2/2商1余0后还要继续除哦,不能看见除了2就以为完了。

编程进制转换最简单方法(你敢说你学过编程)(3)

代码实现:

(C语言版本)

编程进制转换最简单方法(你敢说你学过编程)(4)

二进制>>十进制

在进制中,有一个重要的概念——位权。它指的是各位数字所表示值的与该数字本身的大小、位置的0关系。当我们将二进制转换为十进制时,就可以利用这个关系。

位权的计算是数的每一位以进制为底位置从左向右顺序为指数的幂(序号从0开始,0,1,2,3....)。例如,十进制数123的第一位为10的0次幂,第二位为10的1次幂;二进制数101的第一位为2的0次幂,第二位为2的1次幂。而要把一个任意进制的数转为十进制,结果就是位权乘对应数之和。如二进制数101转为十进制为1*2^2 0*2^1 1*2^0=5。

编程进制转换最简单方法(你敢说你学过编程)(5)

各式进制均相通

所有进制均是相通的,只要理解了二进制的转换,其他进制也都会了。

因为不同进制可能出现同一个数,比如十进制和八进制均有123,这个时候我们可以在数的后边加上字母来辨别:

二进制--B;

八进制--O;

十六进制--X......

大家要是还有更好的算法就分享下下啊,让小编多涨涨见识!!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。