十六进制转换成二进制

2018-07-04 19:45:37 未蓝整理 二进制转换十六进制 二进制转换十六进制

十六进制转二进制算法

Q1:二进制转换成十六进制计算方法

从小数点开始,向左右二边按“四位一段”分段(不足补0),然后,每一段的四位二进制数就对应一位十六进制数。按照以下对应关系进行转换:
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
例如:
(0100 1100 1000 0111 .1101 0000 0101 1000)2=(4C87.D058)16

WwW.jIzHUBa+.coM

Q2:十六进制怎么转换成二进制

1. 二进制1000专换成16进制用8421转换法,即自左向右,8*1+4*0+2*0+1*0=0x8,这是所有十六进制转二进制的通用转换方式,位对位对齐转换,分别乘以8421,然后相加。如果二进制数不够位,应在整数位左边或小数位右边用0补足,凑足4的倍数。当然整数部分和小数部分要分别转换。如:将111100转换为16进制,用8421转换法,但只能对齐二进制的低四位,高二位无法对齐的情况下补0,变为00111100B,再用8421:0*8+0*4+1*2+1*1+1*8+4*1+0*2+0*1=0x3C。注意:十六进制数的一位相当于二进制数的四位。
2. 十六进制转换二进制:用8421拼凑法,首先要清楚的是:四位二进制数表示十六进制的一位,根据以上例子,转换0x3C。首先转换二进制的高四位,也就是十六进制3这个数,可以将8421四位数相加拼凑,如果能得出3,就将该位设置为1,其余为0。这四个数字中,仅有2+1才能得到3,因此,转换为二进制就是0011。低四位,十六进制数C(十进制数12),只有8+4=12,设置为1,其余为0,就得到1100,高低位结合起来,二进制数为00111100.
结合你的例子,转换0x8,8421中仅有8与其相匹配,直接设该位为1,其余为0,得1000B。
还有一种比较简单的方法,楼主可以直接查询BCD码,任何一个十六进制数都可以通过查询BCD码得以转换。
另外,楼上的朋友转换的数并非十六进制,而是十进制。

Q3:急,急急,跪求java十六进制转换成二进制(要自己写算法),再把得到的二进制数取反后,在转换成十六进制

Java程序:
public class Test29 {
public static void main(String[] args) {
String hex = "12345abcdef67890";
String bin;
bin = Transform.convertHexToBin(hex);
System.out.println(hex + " --> " + bin); hex = Transform.convertBinToHex(bin);
System.out.println(bin + " --> " + hex);
}
}
class Transform{
private static String[] hexs = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f"};
private static String[] bins = new String[]{"0000", "0001", "0010", "0011", "0100", "0101",
"0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
//将十进制数hex转换为二进制数并返回
public static String convertHexToBin(String hex){
StringBuffer buff = new StringBuffer();
int i;
for(i=0; i buff.append(getBin(hex.substring(i,i+1)));
}
return buff.toString();
} //将二进制数bin转换为十六进制数并返回
public static String convertBinToHex(String bin){
StringBuffer buff = new StringBuffer(bin);
int i;
if(bin.length()%4 != 0){//左补零
for(i=0; i<(4-bin.length()%4); i++){
buff.insert(0, "0");
}
}
bin = buff.toString();
buff = new StringBuffer(); for(i=0; i buff.append(getHex(bin.substring(i,i+4)));
}
return buff.toString();
} //返回十六进制数的二进制形式
private static String getBin(String hex){
int i;
for(i=0; i return bins[i];
} //返回二进制数的十六进制形式
private static String getHex(String bin){
int i;
for(i=0; i return hexs[i];
}
}
运行测试:
12345abcdef67890 --> 0001001000110100010110101011110011011110111101100111100010010000
0001001000110100010110101011110011011110111101100111100010010000 --> 12345abcdef67890

Q4:16进制转2进制,和2进制转16进制如何转换,

16进制转为2:如156,分三段1,5,6,分别对应二进制的0001,0101,0110,则16进制的156就等于二进制的000101010110=101010110;
二进制转十六进制道理一样。
一位二进制数可用0和1表示两种状态,那么就可以用4位二进制数表示16种状态。而一位十六进制就可以表示16种状态了。

Q5:二进制转十六进制算法(举例)

从右到左 4位一切
eg 100111110110101
左边不满4位的可以用0补满 0100,1111,1011,0101
2进制0000对应16位进制0
0001>>>1
0010>>>2
0011>>>3
0100>>>4
0101>>>5
0110>>>6
0111>>>7
1000>>>8
1001>>>9
1010>>>A
1011>>>B
1100>>>C
1101>>>D
1110>>>E
1111>>>F
所以上面eg中的2进制转为16进制为 4FB5

Q6:八进制转二进制 十六转二进制怎么做

八进二进
0---000
1---001
2---010
3---011
4---100
5---101
6---110
7---111
上面记得住就行了.
如果你记不得,你应该会十进制变为二进制吧!你只要把它成三位,一位或两位前面加0就可以了.
如:十进制2变成二进制就是10,然后就在前面加0,变为010就行了.
十六转二进制,是同样的道理,就是十到十五时,就会为A、B、C ..F,但是一样,只要你知道十进制变为二进制就行了.不足四位就前面加0,变成四位.
如:十进制是10变为二进制就是1010,十六是A变为二时制也就是1010

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

二进制转换十六进制 推荐文章:
推荐不满意?点这里  ››  

二进制转换十六进制