java里如何表示delphi中的Cardinal 无符号整型
Cardinal 是32位的无符号整型,java 里如何表示

解决方案 »

  1.   

    在delphi中只能用Cardinal 了么?
    没有java也有的数据类型表示么
      

  2.   

    服务端是delphi,传过来cardinal类型,integer肯定不行了,java里是有符号的,只能表示cardinal的一半
      

  3.   

    java没有无符号数只说吧,加大long来处理可否?
      

  4.   

    Cardinal  是多少个比特位, 从二进制上下手 肯定可以啊, 
      

  5.   

    直转long就可以了我验证了下,我不熟悉delphi,没在delphi中验证。 public static void main(String[] args) throws Exception {
    System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));// 有符号位是不行的,正数最大
    System.out.println(Integer.toBinaryString(Integer.MIN_VALUE));// 有符号位是不行的,负数最大(补码)
    System.out.println(Integer.toBinaryString(-1));// 32位满位1
    long max = (long) (Math.pow(2, 32) - 1);
    System.out.println(Long.toBinaryString(max));// 无符号数32位最大值
    System.out.println(Long.toBinaryString(max - 1 & max));// 验证
    }
      

  6.   

    昨天我已搞定了,用long 即可,发送时用移位操作,发送低32位即可