如何在Java中将位数组转换为单个char?

时间:2019-01-26 15:18:41

标签: java char byte

我正在使用8位数组,并且试图将其转换为Java中的单个char。我正在尝试按照

byte[] bytes2 = {0,0,0,0,0,0,0,0};
        char c = (char) bytes2);

它引发了一个编译错误,我无法将byte []转换为char。我已经将其编译,但仅通过将char c分配给数组的元素之一才能正常工作。我只是停留在这一部分,并希望获得一些帮助。
谢谢

2 个答案:

答案 0 :(得分:2)

byte[]是字节数组,1个字节是8位,1个字符也是8位。

您用byte[]启动{0,0,0,0,0,0,0,0};这意味着您在bytes2变量中存储了8 * 8 = 64位。

因此您不能将64位数据存储到单个字符(8位)中。

但是您可以这样做:

byte[] bytes2 = {0,0,0,0,0,0,0,0};
char c = (char) bytes2[0]; // store first element (8 bit) into single char (1 bit) and cast it.

答案 1 :(得分:1)

您不能将其转换为单个char。相反,您可以将其转换为单个String,然后将其转换为char数组,如下所示,

    byte[] bits2 = {0, 0, 0, 0, 0, 0, 0, 0};
    String value = new String(bits2);
    char[] chars = value.toCharArray();