二进制与八进制之间互转

二进制与八进制之间互转

方法:取三合一法,以小数点为分割线,整数部分从右(低)位到左(高)位依次三个一组,最后不够的高位补0, 小数点部分从左(高)到右(低)依次三个一组,最后不够的高位补0,接着将每组二进制按权相加,从低位开始,也就是从数的后面开始,第1个数乘以2^1-1,第2个数乘以2^2-1,,第3个数乘以2^3-1
	二进制 0b1010010101001
	前面的0b是代表二进制的一个符号,弃之~ 
	从右手开始将数字分割,每三个为一组,前面要是不够那就补0
	得到 001 010 010 101 001
	第一组是 (0*2^2) + (0*2^1) + (1*2^0) == 1;
		得到数字1,其实如果数字是0那么就不用运算,我这么做 是为了展示。
	第二组是 (0*2^2) + (1*2^1) + (0*2^0) == 2;
	第三组是 (0*2^2) + (1*2^1) + (0*2^0) == 2;
	第四组是 (1*2^2) + (0*2^1) + (1*2^0) == 5;
	第五组是 (0*2^2) + (0*2^1) + (1*2^0) == 1;
	值相拼接 得 12251,这个数字就是二进制转到八进制的数字。
	八进制 12251
	从右手开始将数字分割,每一个为一组
	得到 1 2 2 5 1
	第一组是 1 = (0*2^2) + (0*2^1) + (1*2^0) == 001;
	第二组是 2 = (0*2^2) + (1*2^1) + (0*2^0) == 010;
	第三组是 2 = (0*2^2) + (1*2^1) + (0*2^0) == 010;
	第四组是 5 = (1*2^2) + (0*2^1) + (1*2^0) == 101;
	第五组是 1 = (0*2^2) + (0*2^1) + (1*2^0) == 001;
	值相拼接 得 001 010 010 101 001,这个数字就是八进制进制转到二进制的数字。

信天翁博客
请先登录后发表评论
  • latest comments
  • 总共0条评论