C语言的无符号数据类型转换 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    从网络中读取C的无符号int,short,byte字节数组,相应转换成java的long,char,short

    short anUnsignedByte = 0;

    char anUnsignedShort = 0;

    long anUnsignedInt = 0;

    int firstByte = 0;

    int secondByte = 0;

    int thirdByte = 0;

    int fourthByte = 0;

    byte buf[] = getNetData();//如:读网络字节数据

    int index = 0;

    firstByte = (0x000000FF & ((int)buf[index]))

    index++;

    anUnsignedByte = (short)firstByte;

    firstByte = (0x000000FF & ((int)buf[index]))

    secondByte = (0x000000FF & ((int)buf[index+1]))

    index = index+2;

    anUnsignedShort  = (char) (firstByte << 8 | secondByte);

    firstByte = (0x000000FF & ((int)buf[index]))

    secondByte = (0x000000FF & ((int)buf[index+1]))

    thirdByte = (0x000000FF & ((int)buf[index+2]))

    fourthByte = (0x000000FF & ((int)buf[index+3]))

    index = index+4;

    anUnsignedInt  = ((long) (firstByte << 24

    | secondByte << 16

    | thirdByte << 8

    | fourthByte))

    & 0xFFFFFFFFL;

最新文章