进制间相互转换
程序员文章站
2024-03-16 23:01:22
...
一、二进制、八进制、十六进制转换十进制
1、二进制转换十进制
例:1001011
算法:1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0
2、八进制转换十进制
例:1304
算法:1*8^3 + 3*8^2 + 0*8^1 + 4*8^0
3、十六进制转换十进制
例:2AF5
算法:2*16^3 + 10*16^2 + 15*16^1 + 5*16^0
二、十进制转换二进制、八进制、十六进制
算法:直接除去n(转换进制),余数倒排就是结果
/**
* 进制转换
* @param M int整型 给定整数
* @param N int整型 转换到的进制
* @return string字符串
*/
string solve(int M, int N) {
if(M == 0) return "0";
String s = "0123456789ABCDEF";
String res = "";
boolean f = false;
if(M < 0){
f = true;
M = -M;
}
while(M != 0){
res += s.charAt(M%N);
M /= N;
}
if(f) res += "-";
StringBuffer sb = new StringBuffer(res);
return sb.reverse().toString();
}
三、二进制、十进制、十六进制互相转换
二进制 1111 代表 8421
1、二进制转十六进制
1111 1101 , 1010 0101 , 1001 1011
8+4+2+1 8+4+0+1 8+0+2+0 0+4+0+1 8+0+0+1 8+0+2+1
15 13 10 5 9 11
F D A 5 9 B
16进制 10以上是A、B、C、D....
2、二进制转十进制
例:1001011
算法:1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0
3、十进制转换二进制
例:1234
算法:第一种:直接除去2,余数倒排就是结果
算法:第二种:先转换成十六进制,除去16余数倒排得4D2,再转换成2进制
4、十进制转换十六进制
例:1234
算法:1234直接除去16,余数倒排就是结果
5、十六进制转换二进制
例:A 3 C 4
A 3 C 4
10=8+2 3=2+1 12=8+4 4=4
1010 0011 1100 0100
6、十六进制转换十进制
例:2AF5
算法:2*16^3 + 10*16^2 + 15*16^1 + 5*16^0
这次先写到这里,之后有机会再补充
上一篇: Java 16进制和int互转