二进制算法教程,二进制算法

二进制算法

二进制算法教程,二进制算法

文章插图
|int n=10;//十进制的数
StringBuilder temp = new StringBuilder();//用存储转换2进制的字符串
while(n/2 >=1 || n%2 == 1){//循环取当前的值与2的余数,直到最后为0
temp.append(n%2);
n = n/2;
}
String result=temp.reverse().toString();//翻转因为求出是倒着的,所以需要翻转一下
System.out.println(result);
运行结果1010
二进制转十进制,十进制转二进制的算法(求助)
二进制算法教程,二进制算法

文章插图
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.
二进制转十进制的算法
二进制算法教程,二进制算法

文章插图
要从右到左用二进制的每个数去乘以2的相应次方 。
例如:二进制数1101.01转化成十进制
1101.01(2)=1*2^0+0*2^1+1*2^2+1*2^3 +0*2^-1+1*2^-2=1+0+4+8+0+0.25=13.25
所以总结起来通用公式为:
abcd.efg(2)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并 。
讲解计算机二进制算法?
二进制算法教程,二进制算法

文章插图
你这不是2进制啊 。。计算机的二进制是逢2进1 。即只有0和1两个数字组成 。就跟平时的十进制是的,所有数字组成是从0到9,而十是用1和0组合表示 。
按你1-2-4-8 。。后面应该是16-32-64-128 。。。这都是2的n次方,
【二进制算法教程,二进制算法】