美文网首页
java与C同样代码,结果不一样

java与C同样代码,结果不一样

作者: 念念不忘_2016 | 来源:发表于2020-11-27 17:35 被阅读0次

    在项目中使用了一个加密算法使用的 异或算法进行加密,java与c同样的代码,结果却不同,问题原因在与c语言的 unsigned char 类型的字节长度是8位并且没有符号位,因此它能表示的数字大小为0~255,而java byte字节是有符号位的,其范围为-128~127,因此导致结果不一致。
    此时只需要将java byte 转化为无符号的byte 即可,实现方式如下:
    如果你只需要对英文文本的每个字节进行数据处理,则无需考虑有符号数和无符号数的转换问题;

    以下为Java转换代码。
    
    1、有符号byte 转 无符号int:
      byte b= -190;
      int a= bytes & 0xff;
    2、无符号int 转 有符号byte:  
    int a= 300;
    byte b= (byte)a;
    

    通过& 0xff 即可将 byte转换为无符号的

    相关文章

      网友评论

          本文标题:java与C同样代码,结果不一样

          本文链接:https://www.haomeiwen.com/subject/oyoxwktx.html