java不支持無符號整型. 但是可以考慮用long來接收這樣應該就不會溢出.

解决方案 »

  1.   

    是不会溢出,但是这样一来计算出来的结果和。NET出来的结果是不一样的。
      

  2.   

    那是算法問題.和數據類型沒有關係吧?代碼中只有移位,與,冪操作.用java實現應該不難吧.
      

  3.   

    与数据类型没关系??
    C#中uint数据类型是0 到 4294967295,它再怎么移都应该包含在这个范围以内吧。
    如果是java里面的long类型,移位不会变成负的吗?
    我是糊涂了。
      

  4.   

    uint 和int 的值范围不一样至少要弄个 范围不小于uint的 类型来处理
      

  5.   

    java中 << 是邏輯左移右邊補0 符號位和其他位同時移動.(元數據肯定不會出現負數吧.那麼在不溢出的前提下符號應該是不會變的吧)
    同時 >> 是算數右移 (元數據為正數的時候左邊補0 符號應該也不會變吧)所以只要在不溢出的情況下應該是沒有問題的. 不知道妳所說的出來的結果不一樣在哪裡.最好能有debug數據
      

  6.   

    在java中int的取值范围是-2<sup>31</sup>—2<sup>31</sup>-1
      

  7.   

    在java中int的取值范围是-2 <sup>31 </sup>—2 <sup>31 </sup>-1
      

  8.   

    在java中int的取值范围是-2 的31次方 到 2的31次方-1,
    这个好大了哦.
      

  9.   

    如果把.NET里面的uint数据类型改成long就可以了,但是在解密的时候就会有问题.
      

  10.   

    那这个算法应该怎么写??能够实现.NET和java得到的结果是一样的???求各位大大了.
      

  11.   


    经过多方面的查询资料,自己摸索终于把C#用Tea编写的加密换成了JAVA.肯定有好多BUG,以后再慢慢完善吧.