如何在Java中为幻数设置4字节位模式? 我正在使用C++在Linux机器上进行网络编程,我想知道如何在java(客户端)中设置神奇数字的4字节位模式。此外,如何在C++ CO-I中设置相同的位模式可以将客户端与服务器端的模式进行比较。
提前感谢 编辑 现在我有了这个如何在Java中为幻数设置4字节位模式? 我正在使用C++在Linux机器上进行网络编程,我想知道如何在java(客户端)中设置神奇数字的4字节位模式。此外,如何在C++ CO-I中设置相同的位模式可以将客户端与服务器端的模式进行比较。,java,c++,linux,networking,Java,C++,Linux,Networking,提前感谢 编辑 现在我有了这个 byte[] signature = new byte[4]; for(int i=0; i<4; i++){ signature[i] = (byte) 0xA9; } 我在C中做了类似的事情++ uint8_t m_magicNumberBuffer[4]; magicKeyRead = read(m_fd, m_magicNumberBuffer, SIZE_OF_HEADER);
byte[] signature = new byte[4];
for(int i=0; i<4; i++){
signature[i] = (byte) 0xA9;
}
我在C中做了类似的事情++
uint8_t m_magicNumberBuffer[4];
magicKeyRead = read(m_fd, m_magicNumberBuffer, SIZE_OF_HEADER);
if(m_magicNumberBuffer[0] == 0xA9 && m_magicNumberBuffer[1] == 0xA9 && m_magicNumberBuffer[2] == 0xA9 && m_magicNumberBuffer[3] == 0xA9){
printf("SocketClient::recvMagicKey, Magic key has been found \n");
break;
}
我以某种方式工作,但不确定我是否声明了m_magicNumberBuffer和无符号整数,但它们在java中为负89。这样做可以吗
提前感谢。Java有位运算符,例如位或
,位和&
和位移位运算符>
,
和Java有位运算符,例如位或
,位和&
和位移位运算符>
,
和在Java中,您可以将其表示为
byte[] signature=new byte[4];
在C++中,它将是
uint8_t signature[4];
然后,您可以作为数组的元素单独访问每个字节
这两种语言都支持十六进制代码,例如,您可以
signature[0]=0xA9;
在java或C++中,它将第一位设置成十六进制的A9(二进制是10101001)< /p>
爪哇,你可以把它表示为< /P>
byte[] signature=new byte[4];
在C++中,它将是
uint8_t signature[4];
然后,您可以作为数组的元素单独访问每个字节
这两种语言都支持十六进制代码,例如,您可以
signature[0]=0xA9;
在java或C++中,它将第一位设置成十六进制的A9(二进制为10101001)当你写入DATaOutPutsFipe时,你写8位字节(符号不重要)< /P>
Java默认情况下假定一个字节是有符号的,但是它只是8位的数据,正确使用它可以是无符号的,也可以是任何您想要的意思。当您写入DataOutputStream时,您会写入8位字节(符号不重要)
Java默认假设一个字节是有符号的,但是它只有8位的数据,正确使用它可以是无符号的,也可以是任何你想要的意思。你真正要处理的是四个字节的原始内存;你所做的一切
与之相关的是位模式,而不是数值。八点
位(Java中字节的大小)、-89
和0xA9
都具有相同的大小
位模式:10101001
。因为byte
是用Java签名的,所以转储
值将显示负值,这与直觉相反,但
Java没有8位无符号类型
(从技术上讲,0xA9
不能用字节表示,并试图将
它在<<代码> C++中的符号char <代码>是非法的,但是java不关心。
这些细节。)你真正要处理的是四个字节的原始内存;你所做的一切
与之相关的是位模式,而不是数值。八点
位(Java中字节的大小)、-89
和0xA9
都具有相同的大小
位模式:10101001
。因为byte
是用Java签名的,所以转储
值将显示负值,这与直觉相反,但
Java没有8位无符号类型
(从技术上讲,0xA9
不能用字节表示,并试图将
它在<<代码> C++中的符号char <代码>是非法的,但是java不关心。
这样的细节。)