首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求把一个二进制第N位成为0或是1的算法

2014-01-13 
求把一个二进制第N位变为0或是1的算法如1101 到 1001 再到 1011[解决办法]错了。置1和只有某位是1的数据按

求把一个二进制第N位变为0或是1的算法
如1101 到 1001 再到 1011
[解决办法]
错了。
置1和只有某位是1的数据按位或就可以了。
置0和只有某位是0的数据按位与就可以了。
[解决办法]

引用:
谢谢,取反是可以,但我希望结果不依赖源数据,比如我要把第2位置1


x86上也有相应的bit设置1、0的指令:
function SetBit(const X, N: integer): integer;
asm
  bts eax,edx
end;

function ResetBit(const X, N: integer): integer;
asm
  btr eax,edx
end;

平台无关的实现你也可以自己写出来。

热点排行