我正在尝试用汇编语言编写一个函数(但对于这个问题,假设语言是不可知的)。
如何使用按位运算符将传入数字的所有位都设置为1?
我知道我可以对我想设置的位掩码使用按位“或”,但我不知道如何根据N大小的二进制数字构造掩码。
发布于 2009-05-04 01:49:02
~(x & 0)
X&0将始终为0,而~将所有位翻转为1。
发布于 2009-05-04 01:51:51
将其设置为0,然后使用逐位NOT将所有位反转为1。
发布于 2009-05-04 02:25:58
你会发现在汇编语言中,你必须知道“传入数”的大小。在汇编语言中,真正重要的是汇编语言是针对哪台机器的。
根据这些信息,您可能会问
或
要用全1位填充寄存器,在大多数机器上,有效的方法需要两条指令:
用1位填充内存,则需要1条或更多存储指令...
你会在Hank Warren的一本精彩的书Hacker's Delight中找到更多的小窍门和技巧。
https://stackoverflow.com/questions/818535
复制相似问题