关于根底单薄的读者,本节的内容能够略显流畅和单调,假如认为费劲,可以临时跳过,用到的时分再来浏览。然则本节所讲的内容是进修编程的根底,是程序员的根本功,即便如今不学,迟早也要回来学。
后面两节对二进制、八进制和十六进制停止了阐明,接下来讲一下分歧进制之间的数字是若何转换的,这在编程中常常会用到,特别是C言语。
二进制、八进制和十六进制向十进制转换多是十分轻易的,就是“按权相加”。
所谓“权”,也即“位权”。例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100;而二进制第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4。设数字所采取的进制为N(基数也是N),那么第 i 位的位权为 N(i-1)。
分歧进制转换为十进制举例:
二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9
二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625
八进制:0302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194
八进制:0302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375
十六进制:0Xea7 = 14×162 + 10×161 + 7×160 = 3751
上节的表格中给出了复杂的十进制和二进制的转换关系,要想取得更多的转换关系,可以运用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时, 另一个进制的基数就是模,用将要转化的进制数除以模,取它的余数。
下图以十进制的“19”转换为二进制为例停止解说:
图1:19 转换为二进制
如图所示,以2为除数,不断相除下去,直到商为0,余数则为求得的二进制数。
留意:余数要倒序陈列,也就是说,最先求得的余数排在二进制的最初面,最初求得的余数排在二进制的最后面。下面的例子中,最初求得的二进制数为 10011。
固然其他进制也可以依照辗除法来转换,然则比拟费事,下面引见更复杂的办法。
二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的次序是从低位向高位顺次停止,高位缺乏三位用零弥补。以二进制“1011101”为例,如下图所示:
图2:二进制转八进制
转换的后果为:1011101 = 0135
八进制向二进制转换的思绪是八进制的一位转换为二进制的三位,运算的次序是从低位向高位顺次停止。异样以八进制“0135”为例,如下图所示:
图3:八进制转二进制
转换的后果为:0135 = 1011101
二进制向十六进制转换时,四位转换成十六进制的一位,运算的次序是从低位向高位顺次停止,高位缺乏四位用零补。以“1110011”转换成十六进制为例,如下图所示:
图4:二进制转十六进制
转换的后果为:1001011101 = 0X25D
十六进制向二进制转换,就是把十六进制的一位转换成二进制的四位,留意运算的次序是从低位向高位顺次停止。异样以十六进制“0X25D”为例,如下图所示:
图5:十六进制转二进制
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。