求一算法:怎么随机产生一个最高位为1,低位的倒数第二位为0的32位整数?

解决方案 »

  1.   

    算法你慢慢理吧....
    你可以分别确定(比如第一位定第一个为1)然后再把他们转成CString类型组合在一起
    最后把这个字符串转成INT型就行了...
    笨方法
      

  2.   

    产生一个32位整数(简单吧?),然后将最高位置为1,倒数第二位置为0,用&就可以了。
    int n = rand() & 0x80000002;
      

  3.   

    说错了,置0用&,置1用|:
    int n = rand() | 0x80000000;
    n &= 0xFFFFFFFD;
      

  4.   

    支持Mackz(在相互) ( ) 信誉:115
      

  5.   

    Mackz(在相互) 版主当然就是不一样嘛~~ 嘎嘎..
      

  6.   

    最偷懒的方法,用字符串实现,32位长度的字符串你要的两位设好其他用随机数生成,用16进制添入,再用strtoul读取16进制就行了