HardBirch

C#到Java byte类型冲突的解决

时间:10-05-11 栏目:HTML5移动开发 作者:张飞不张,文采横飞 评论:4 点击: 3,099 次

最近要改写一个核心加密认证类,从C#改写成Java。

发现在调试时,加密的数据无论如何也对不上。

经过跟踪,发现问题出在C#和Java byte类型的区别上:在C#里 byte类型是无符号的,而Java里是有符号的,所以C#里的129到Java里就成了负数。

发现了问题,解决就比较容易了,针对Java的byte,采用Int来进行存储。

通过如下代码从byte到int进行转换:

对于下面C#的代码:

改写为如下形式,相当于重新实现BinaryReader的ReadInt16和ReadInt32方法。

上面的例子说明,c#和Java虽然非常相像,但是一些关键细节的不同是需要仔细考虑的。

 

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: C#到Java byte类型冲突的解决

C#到Java byte类型冲突的解决:目前有4 条留言

  1. 4楼
    blue601:

    顶一个[e04]

    2010-11-02 16:51 [回复]
  2. 地板
    lemmme7:

    readArrayIndex是什么东西啊,楼主请指示

    2010-11-24 15:47 [回复]
  3. 板凳
    lemmme7:

    Stream spxStream = System.IO.File.Open(mapPath, System.IO.FileMode.Open);

    /** 创建索引文件二进制数据读取对象**/
    BinaryReader spxBR = new System.IO.BinaryReader(spxStream);

    int netA=spxBR.ReadInt32();以上的这几句C#怎么翻版成java? 联系邮箱xuzhaoyue008@163.com或直接帮我回复,谢了

    2010-11-24 15:50 [回复]
  4. 沙发
    hfahe:

    回复 lemmme7:readArrayIndex是一个静态变量。

    2010-12-05 20:19 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐