我想要实现下面的功能
希望哪位大侠能够写出来
给一个32位的十六进制的数据 比如说是0xff,0xff,0xff,0xff.先把这写数字整体左移三位 (就是乘上0x08 ) 然后得到的数字低38位异或上溢出的数(也就是除了低38位的数)
麻烦哪位大侠把这个算法用c语言写出来。包括一些变量的定义。小弟多谢了 嘿嘿

解决方案 »

  1.   

    用c实现,你怎么把贴发到java版来了?"然后得到的数字低38位异或上溢出的数",何解?
      

  2.   

    不过这问题,c和java差不多.我估计是低28位吧.
    int a=0xfabcd123;//你随便写
    int b=a&0xe0000000;//把最高的三位取出放到b中.
    b>>>=28;           //把最高的三位移到最低的三位中.
    a<<=3;             //a左移三位.
    int c =a^b;         //结果放到c中.
      

  3.   

    int a=0xfabcd123;//你随便写
    int b=a&0xe0000000;//把最高的三位取出放到b中.
    b>>>=29;           //把最高的三位移到最低的三位中.
    a<<=3;             //a左移三位.
    a=a&0x0fffff        //取a的低28位,还放在a中.
    int c =a^b;         //结果放到c中.