进制之间的转换问题,
方法/步骤
进制今天无聊是看到一个题目大致是这样的 int i=18; int j=022; int k=0x12;System.out.println(i);System.out.println(j);System.out.println(k);当时说i=12 j=22 看到0x时我发现我错了,这不是16进制吗,后来呢算了好久出来 i,j,k 都是18 (我没有用ecplice),在这里用中午的时间总结一下8进制和16进制的问题(这里用的手动的方式)。1. 8进制-->10进制 8进制就是逢8进1, 其数采用0~7, 权:8^0,8^1......8^7 那么8进制22转换为10进制为:2*8^1+2*8^0=182. 10进制---->8进制 这个其实和10进制转换为2进制的一样只不过除数有2变为了8例如10进制的数为129 129/8=16余 1,16/8=2余 0 那么129转换为8进制为201验证:2*8^2+0*8^1+8^0=1293. 16进制-->10进制16进制就是逢16进1,其数采用0~9和a,b,c,d,e,f(不区分大小写), 权:16^0,16^1....16^f(这里运算时f为15)同样的道理转换时他的除数为16例如10进制为120转换为16进制如下120/16=7 余8 那么 16进制数为78,但是题目中的数可以12 不够了,这样的数我一直很纠结,最后想16进制不就是2个二进制吗那么16进制的数12可以为2个二进制的数 1的二进制为0001 ,2的二进制为0010 和在一起为 在把这个数换为10进制为2^4+2^1=18;哈哈这不就算出来了吗。其他进制都是一个原理。
下一篇:教你轻松的把二进制转换成八进制