阿拉斯加图片幼犬:二进制如何换算十进制

来源:百度文库 编辑:高校问答 时间:2024/04/27 23:42:56

import java.math.BigInteger;

public class Test20060630_01 {
public static void main(String[] args) {
String s = "100110011001";
BigInteger bi = new BigInteger(s, 2);
System.out.println(bi.toString(10));
}
}

一位一位地加,如:

10010110

就是

1 * 2^7 + 0 * 2^6 + 0 * 2^5 + 1 * 2^4 + 0 * 2^3 + 1 * 2^2 + 1 * 2^1 + 0 * 2^0
= 128 + 64 + 4 + 2
= 198

1 1 0 0 0 0 0 0
128 64 32 16 8 4 2 1
2的N次方以此算下去256 512 1024 2048 4096.....
第一位2的1次方第二位2的2次方以些类推
有1的相加就得出10进制的数 上面的例子是192
1 0 1 0 1 0 0 0
128 64 32 16 8 4 2 1
按上面说法换成第4 6 8位相加得出10进制数为168

最后一位的数,加倒数第二位的数乘二,加倒数第三位的数乘二的二次方,加倒数第三位的数乘二的三次方,加……
或者你就打开windows附件的那个计算器,在选项里调成科学型的,再选二进制,输二进制数进去,再换十进制,就换算出来了。

c[n-1]*2^(n-1)+c[n-2]*2^(n-2)+...+c[0]*2^0