读书人

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

发布时间: 2014-01-13 17:16:02 作者: rapoo

求把一个二进制第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;

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

读书人网 >.NET

热点推荐