社区
Java SE
帖子详情
关于用C和java读同一个二进制文件却结果不同的问题
moseyy
2016-09-07 05:34:40
直接上结果,如图所示:
图上分别是用C(上)和用java(下)读取同一个文件的结果,既输出了二进制码,括号中也输出了相对应的int或float值,两者的二进制码是相同的,但是int或float值却是不同的。已知C的结果是正确的(文件是用C写的,写的值和现在输出的值是一样的),所以必然是java的结果哪儿有问题。
然后把我的code也放上来:
左边是C,右边是java,code应该没有问题。所以现在真的不知道问题出在哪儿?
...全文
295
2
打赏
收藏
关于用C和java读同一个二进制文件却结果不同的问题
直接上结果,如图所示: 图上分别是用C(上)和用java(下)读取同一个文件的结果,既输出了二进制码,括号中也输出了相对应的int或float值,两者的二进制码是相同的,但是int或float值却是不同的。已知C的结果是正确的(文件是用C写的,写的值和现在输出的值是一样的),所以必然是java的结果哪儿有问题。 然后把我的code也放上来: 左边是C,右边是java,code应该没有问题。所以现在真的不知道问题出在哪儿?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moseyy
2016-09-07
打赏
举报
回复
存储都是4位,这没问题。问题在于存储的顺序,我检查了一下,java的存储是顺序的,而C的存储是反序的,比如一个数16909320(=2^24+2^27+2^10+2^3,二进制为00000001 00000010 00000100 00001000),在java中就是按这个顺序存储的,但是在C中却是反序存储的(00001000 00000100 00000010 00000001),所以java写的文件C出来就是134480385(=2^27+2^18+2^9+2^0)。这就是真正的原因。
unauthorized401
2016-09-07
打赏
举报
回复
这个应该是c和java中关于int和float的存储位数不同的原因吧。
基于MATLAB-Simulink平台构建的完整正交频分复用通信系统仿真模型_该项目详细实现了OFDM通信系统的发送机信道与接收机全链路设计支持BPSK与多种阶数QAM调制方式.zip
基于MATLAB-Simulink平台构建的完整正交频分复用通信系统仿真模型_该项目详细实现了OFDM通信系统的发送机信道与接收机全链路设计支持BPSK与多种阶数QAM调制方式.zip
ICE车辆纵向动力学MATLABSimulink建模仿真与控制系统设计项目_内燃机汽车纵向运动学与动力学建模发动机扭矩特性模拟传动系统效率分析制动系统建模轮胎与路面附着系.zip
ICE车辆纵向动力学MATLABSimulink建模仿真与控制系统设计项目_内燃机汽车纵向运动学与动力学建模发动机扭矩特性模拟传动系统效率分析制动系统建模轮胎与路面附着系.zip
Osmanaaltay_Matlab-simulink_1130572_1773220861179.zip
Osmanaaltay_Matlab-simulink_1130572_1773220861179.zip
sembly1985_matlab_simulink_demos_1142144_1773222487181.zip
sembly1985_matlab_simulink_demos_1142144_1773222487181.zip
ssm718个人日常事务管理系统+vue(文档+源码)_kaic.zip
计算机毕业设计
Java SE
62,625
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章