能否用算术运算实现逻辑运算 20C

请教大佬,我现在需要仅用加减乘除四个算术运算符来实现逻辑运算,例如:bit位的复位置位功能

4个回答

可以
首先 a % 2 = a - (a / 2) * 2 这里的除是整除。
xor
(1+0)%2=1
(0+1)%2=1
(1+1)%2=0
(0+0)%2=0

and
(0+0)/2=0
(1+0)/2=0
(0+1)/2=0
(1+1)/2=1

or
1*1=1
1*0=0
0*1=0
0*0=0

not可以用xor 1实现

not 1 = 1 xor 1 = 0
not 0 = 0 xor 1 = 1

多位的话,可以用连续 /2 再取模得到每一位
有每一位的话,可以每一位乘以2的n次方再相加。

问题解决的话,请点下采纳

逻辑运算是指与或非吗?
……加减乘除就是用门电路的逻辑运算实现的吧,倒过来用不是绕了远路?本身就有按位与或非的操作符,为什么不用呢

能用算术运算实现逻辑运算

确实 位运算是机器底层实现的逻辑,
运算效率比四则运算高了很多,不过要用四则取代位运算也并非不可,

理解二进制数的规律就很简单了,譬如bit 位 置1 不同位对应2的不同次方
譬如某一位我置1 就是加上一个 2的对应次方
譬如某一位我置0 就是减去一个 2的对应次方

全部置1就是 直接赋值 0xffff =(x-x-1)
全部置0就是 直接赋值 0x0000=(x-x)

平时左移 n位和右移 n位就是 乘2 和 除2 n次方

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐