1.最近项目中用java读c++写的二进制文件,二进制文件用2个字节无符号整形存储,java用
DataInputStream dis = new DataInputStream(ins);//ins为文件流
dis.readUnsignedShort();//java读无符号整形
读出来的数据和c++读出来差别比较大,跳一个字节后读出来的20000个数据有90%左右一致的。。。。
2.后来用UltraEdit直接看二进制数据,正常高低位顺序读出来和java是一致的,把高低位反调后和c++是一致的。
c++存储无符号整形是高低位反调,java读是正常高低位读数据!
3.最后解决:java正常读出来再高低位反调。
/**
* 2个字节无符号整形高低位反调
* @param num
* @return
*/
public static int changeHightDown(int num)
{
if(num>65535||num<0)
{
return num;
}
else if(num<16)
{
String temp = Integer.toHexString(num);
String tempnew = "0"+temp+"00";
return Integer.parseInt(tempnew, 16);
}
else if(num<256&&num>=16)
{
String temp = Integer.toHexString(num);
String tempnew = temp+"00";
return Integer.parseInt(tempnew, 16);
}
else if(num<4096&&num>=256)
{
String temp = Integer.toHexString(num);
String tempnew = temp.substring(1, 3)+"0"+temp.substring(0, 1);
return Integer.parseInt(tempnew, 16);
}
else
{
String temp = Integer.toHexString(num);
String tempnew = temp.substring(2, 4)+temp.substring(0, 2);
return Integer.parseInt(tempnew, 16);
}
}
分享到:
相关推荐
JNI开发Java和C/C++互相传递List集合, 可以参考: Java从C/C++获取List集合对象:https://blog.csdn.net/niuba123456/article/details/80994166 Java传递List集合对象到C/C++ ...
java调用C/C++全过程 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地...
C语言/C++集成开发环境 Dev-C++。一款优秀的C/C++集成开发软件。
Dev-cpp5.4.0及API帮助文档 2018年蓝桥杯C语言/c++ 需要的同学可以下载使用
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
Java与C/C++的区别(转).
C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码 C语言/C++ 烟花表白代码
通过jni完成java调用c/c++,包含c/c++生成Dll动态库
java调用C/C++过程,供初学者学习
C语言/C++基础之爱心源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
#二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...
c/c++中文帮助文档(API),包含c和c++所有的库函数
C/C++ DevTools Support (DWARF)离线安装包,里面是crx文件,如果不知道goole crx文件怎么安装的请自行搜索
c语言/c++/qt图形界面
android NDK入门篇----混合使用java和c/c++代码 源码工程 包括头文件 源文件以及生成的so库
好好的java/.net/c/c++/,给大家分享分享!
C语言/C++基础之爱心程序源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
软件集成了高校 C/C++语言教学中使用最多的三种编译器 Visual C++ 6.0 、Turbo C++3.0和Turbo C 2.0 ,给高校 C/C++的实验教学提供了简单易用的软件实验环境(软件没有使用日期限制,可以无限期使用)。与软件配套的...
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...