相关疑难解决方法(0)

我们可以在Java中创建无符号字节

我试图转换无符号的有符号字节.问题是我收到的数据是无符号的,Java不支持无符号字节,因此当它读取数据时,它将其视为已签名.

我尝试通过以下我从Stack Overflow获得的解决方案来转换它.

public static int unsignedToBytes(byte a)
{
    int b = a & 0xFF;
    return b;
}
Run Code Online (Sandbox Code Playgroud)

但是当它再次以字节转换时,我得到相同的签名数据.我试图将此数据用作Java函数的参数,该函数只接受一个字节作为参数,因此我不能使用任何其他数据类型.我该如何解决这个问题?

java unsigned

174
推荐指数
6
解决办法
26万
查看次数

如何将0和1的字符串转换为无符号字节?

这里,我有一个包含 0,1,-1 的数组。我将所有 -1 替换为 0,然后创建一个由 0 和 1 组成的字符串。稍后,将字符串转换为 Byte,但默认情况下,Byte.parseByte() 会将字符串转换为带符号的 Byte。请向我建议一个将其转换为无符号字节的解决方案。

public class Test{

     public static void main(String []args){
        int[][] intArray = new int[][]{ 
            {-1,0,0,-1,0,1,1,0},
            {1,1,0,-1,0,0,-1,0},
            {-1,0,1,1,0,-1,1,0},
            {1,-1,-1,0,0,1,-1,0}
        }; 
        
        
        for(int j=0; j<intArray.length;j++){
            String BitString = "";
            for(int i=0; i<8;i++ ){
                if (intArray[j][i] == -1){
                    BitString = BitString + "0";
                }
                else{
                    BitString = BitString + intArray[j][i];
                }
            }
            System.out.println(BitString);
            
            try{
                Byte b = Byte.parseByte(BitString,2);
                System.out.println(b);
                System.out.println(b.getClass().getName());
            }
            catch(Exception e){
                System.out.println(e.toString());
            }
            System.out.println("\n");
        } 
     }
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

00000110
6 …
Run Code Online (Sandbox Code Playgroud)

java byte

-3
推荐指数
1
解决办法
563
查看次数

标签 统计

java ×2

byte ×1

unsigned ×1