大家知道整型变量存在内存中是32位的二进制
现在我有一个已知的整形变量int x = 99;(不是特定的)
我要对让这个变量的第八位和第九位都为1,其他位不变
变成一个新的数据,怎么做?
就是说我可以随意改变一个值类型的二进制的某位的0,1值
怎么做?

解决方案 »

  1.   

    如果让第八位和第九位为1 , 需要保持第八位 第九位 与1 进行 或运算
    其他位不变 则与0 做 或运算. 因此 计算出一个其他位为0 第八第九位为1的数 110000000 = 384用 x 与384 进行 或运算 即可得出结果. int y = x | 384
      

  2.   

    既然你这样,有没有考虑过直接用字符串处理,我还特地查了一下MSDN,要用的方法都有。可以专门写一个函数,把你第八位第九位要变得值传入
      

  3.   

    说详细点吧,先把int32变成二进制的字符串,然后处理字符串,再把字符串转化为int32
      

  4.   

    c c++ 应该都是 异或操作 ,  C# 还真不知道有没有封装好的函数