
正文
用Java测试大小端代码 用java测试大小端代码怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言和java 使用socket通信的时候 数据大小端转换的问题
我也搞网络编程搞好久了,大小端这个问题倒是没有遇到过啊,我同事做Java,我做IOS都一样的,都是小端的。
建议你用抓包软件抓下包看看,还有就是注意发送时数据对齐问题,不同的系统可能一样的类型长度就不一样,比如在mac系统中long型有8字节,但是在IOS、VC中就只有四个字节,一般使用socket发送数据时都是打包发送的(头部一般都是固定的结构体),这个问题必须要注意
相关问答
Q1: 大端模式和小端模式的区别及如何判断的存储器的模式
一个数需要超过一个字节来存储时用Java测试大小端代码,就有大端和小端用Java测试大小端代码的区别用Java测试大小端代码,只用一个字节时用Java测试大小端代码,无所谓大小端
低位的放在低地址用Java测试大小端代码,也就是小个在前,叫小端,反之叫大端
c和c++需要面对这样的问题,java等高级语言已经屏蔽这个差异,不需要额外处理
在c中,可以用以下代码片段来判断是大端还是小端
union {char c; int i;} u;
u.i = 1;
if(u.c == 1){//小端}
else{//大端}
Q2: 有了java代码,如何测试
你这说的太笼统了,应该具体些。
有了Java代码之后
1、可以在代码中写些测试的方法,把你想要验证的东西,输出看一下。
2、可以用Debug的形式,跟踪代码执行,验证程序的逻辑是否正确。
3、利用JUnit写断言,测试结果
Q3: Java盲区:如何用Java检测大端和小端
static ByteOrder byteOrder() { if (byteOrder == null) throw new Error("Unknown byte order"); return byteOrder;
} static { long a = unsafe.allocateMemory(8); try { unsafe.putLong(a, 0x0102030405060708L); byte b = unsafe.getByte(a); switch (b) { case 0x01: byteOrder = ByteOrder.BIG_ENDIAN; break; case 0x08: byteOrder = ByteOrder.LITTLE_ENDIAN; break; default:
assert false;
byteOrder = null;
}
} finally { unsafe.freeMemory(a);
}
}
关于用Java测试大小端代码和用java测试大小端代码怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






