需求是:将整数转化为16位的二进制数,然后将其中的第1位设置成1,然后再转化成整数。举个例子:
 比如一个整数 21276。 转化成16位2二进制数为 0101001100011100将第一位设置成1 既—>1101001100011100
转化成整数为—>54044.希望高手指点,万分感激!!!!!
PS:目前进展如下 int a = 21276;
 string aa = Convert.ToString(a, 2).PadLeft(16, '0');

解决方案 »

  1.   

    转16进制Convert.ToString(j, 16)
    设置第一位就用位运算| 位逻辑或运算 
      

  2.   

      int a = 1|32768;
    是这意思么?
    现在的情况是 1~16位中任何一位都可能需要设置成1或0(比如可能是第八位需要设置成0)。 
      

  3.   

    看错了就是转2进制
    10010001(二进制)| 11110000
    Convert.ToString(j,2)
      

  4.   

    int a = xxx;
    a |=32768;// 也可以写作 a = a | 32768。如果是第8位,就 a |= 64。
    如果是第7位,就 a |= 32。

    如果要设置0,就 &= ~32768;
      

  5.   

    总结一下,设置成1的话是。。

    int a = 32322;  a |= 256;//10位
    int a = 32322; a |= 128;//9位
    int a = 32322;   a |= 64;//8位
    int a = 32322;   a |= 32;//7位

    。。设置成0的话。。

    int a = 32322;  a &= ~256;//10位
    int a = 32322;  a &= ~128;//9位
    int a = 32322;   a &= ~64;//8位
    int a = 32322;   a &= ~32;//7位

    。。是这个意思吧
      

  6.   

    不对吧
    设置成零怎么会是&~32.....
    设置成零应该是“与"的那位是零,其他位为1啊
      

  7.   

    我的应该是对的参考
    http://msdn.microsoft.com/zh-cn/library/d2bd4x66(v=VS.80).aspx
      

  8.   

    001101110111132->  0000000001000000
    ~32 ->1111111110111111那么一个整数    1001100111101111
             &    1111111110111111
    起到了第7位为0 其它位不变的效果
    也就是说10楼总结的没问题 是不
      

  9.   

    ushort u = 21276;
    u |= ((ushort)1 << 15);
      

  10.   

    hehe ,无所谓。你还能回来瞅瞅我的回复。就说明我没白回。
      

  11.   

    呵呵 谢谢你!!
    CSDN又出BUG了,明明昨天早已结贴,但现还是未结贴状态。
      

  12.   

    int a = 32322;  a |= 256;//9位
    int a = 32322; a |= 128;//8位
    int a = 32322;   a |= 64;//7位
    int a = 32322;   a |= 32;//6位int a = 32322;  a &= ~256;//9位
    int a = 32322;  a &= ~128;//8位
    int a = 32322;   a &= ~64;//7位
    int a = 32322;   a &= ~32;//6位