现在做一个项目,之前是C做的,c和java之前存在一个有符号和无符号byte的关系,现在我解密的时候都是用int型来装原来的C写的文件的byte型数据,问题出来了 
      原来byte型的,变成整型的呢,现在要将它转化成字符,我强转之后,可能会丢失精度,如果不强转,能否将int型的数据变成String类型的,求教!

解决方案 »

  1.   

    java中也有byte啊,可以与之对应。
      

  2.   

    读文件都是以一个字节来读的,但是读出来了,要进行转型 像c里面的是无符号的,到java这来要变成有符号的,要进行与操作 &0xff,这样值就相等了,但是问题是,值相等了,可是在JAVA这边变成了int型 还不是byte型了,这里又设计到了一个转换的问题,之前的byte型数据是可以转换成中文的,在这里变成int了之后,我将如何再让它显示成中文……
      

  3.   

    java中数据类型与C数据类型关系的定义在jni.h文件中有定义,你可以去看一下。
    java中没有无符号类型,但是数据的本质不变,只是根据最高位的符号来判定正负而已,在java中有无符号右位移操作符>>>,你可以灵活运用它来实现一些数据准换的工作。
    对于大数字,建议使用byte[]数组来进行数据交换,在java你可以使用BigInt类来处理,在C里面你可以使用指针。
      

  4.   

    问题已经被我解决了,不过新的问题又出来了,去Android上提问了,谢谢大家的热心帮助!