将二进制转换为十六进制?

0 binary hex decimal

只是想知道如何将二进制转换为十六进制?我首先要将二进制转换为十进制然后转换为十六进制吗?

例如,101101001.101110101010011

我如何将上面的复杂二进制转换为十六进制?

提前致谢

And*_*nck 7

二进制数的每4位表示十六进制数字.因此,从二进制转换为十六进制的最佳方法是使用前导零填充二进制数,以便位数可被4整除.

然后,您一次处理四个位并将它们转换为单个十六进制数字:

0000 -> 0
0001 -> 1
0010 -> 2
....
1110 -> E
1111 -> F
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

不,您不会转换为十进制,然后转换为十六进制,不会转换为数字值,然后转换为十六进制。

(十进制也是数字的文本表示形式,就像二进制和十六进制一样。尽管默认情况下使用十进制表示形式,但是数字本身并不具有文本表示形式。)

由于十六进制数字对应于四个二进制数字,因此您不必将整个字符串转换为数字,因此您一次可以将其转换为四个二进制数字。

首先填写二进制数字,以使其具有四位数的完整组:

000101101001.1011101010100110

然后,您可以将每个组转换为数字,然后转换为十六进制:

0001 0110 1001.1011 1010 1010 0110

169.BAA6

或者,您可以将数字分为两个部分,然后将其转换为二进制。可以将期间之前的部分直接转换,但是必须填充之后的部分才能正确。

C#中的示例:

string binary = "101101001.101110101010011";

string[] parts = binary.Split('.');
while (parts[1].Length % 4 != 0) {
  parts[1] += '0';
}

string result =
  Convert.ToInt32(parts[0], 2).ToString("X") +
  "." +
  Convert.ToInt32(parts[1], 2).ToString("X");
Run Code Online (Sandbox Code Playgroud)