怎样用位运算表示a+b?

用这些运算:
& | ^ ~ << >>
表示a+b

以下方法不知是否满足要求,请参考
1.
首先,对集合元素编码。考虑到集合元素是英文小写字母,至多26个,用一个32bit
的int
即可。
建立binary编码映射如下:a-->
1
b-->10
c
-->100,
...,
z
-->10...0
(25
个0)
2.
对应集合a
映射为数字a,
11111,
对应集合b
映射为数字b,
1010001000000001001110
3.
计算步骤:
结果集为
c,
对应数为
c
int
a
=
11111b;
int
b
=
1010001000000001001110b;
c
=
a|b;
得到
c
==>1010001000000001011111
如果你要coding,
将c
按照binary编码映射输出即可。
c={a,b,c,d,e,g,p,t,v}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-07-23
看来是不可能有答案了。(~(a^b)&a) << 1 | (a^b)只能处理一次进位的情况。而上面的答案本身就用了+运算。如果一定要算,只能一位一位地求值再组装起来。本回答被提问者采纳
第2个回答  2007-07-21
x+y = x - ~y - 1 = (x|y)+(x&y)
第3个回答  2007-07-21
a & b

怎样用位运算表示a+b?
首先,对集合元素编码。考虑到集合元素是英文小写字母,至多26个,用一个32bit 的int 即可。建立binary编码映射如下:a--> 1 b-->10 c -->100,...,z -->10...0 (25 个0)2.对应集合a 映射为数字a,11111,对应集合b 映射为数字b,1010001000000001001110 3.计算步骤:结果集为 c,对应数...

两个变量的交换,如何用加减乘除来完成?
a = a^b;b = a^b;a = a^b;3、乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题。而且乘除法比加减法要多一条约束:b必不为0。a = a * b b = a \/ b a = a \/ b 其中加减,乘除容易越界,用位运算异或效率最高,且不会越界。使用位运算交换两个数,...

C语言利用位运算实现整数的加法运算
1^1=1 1^0=0 0^1=0 0^0=0 即a和b按位与后是1的位会进位 而每一位进位的效果就是它左边的一位加一 所以假设进位的各位是carry,进位的效果就是sum+(carry左移一位)既然是求和 就可以直接调用Add(sum,carry<<1)当不出现进位的时候,递归就可以终止了,所以有 if (b == 0) retur...

c语言编程用的符号有哪些?是什么意思
1、C语言常用编程符号:取余数 5%3=2&位的和 2&3=2|位或 2|3=3!非 !2=0 &&和 3&&5为真 4&&0 为假||或 3||0为真 0||0为假+= 相当于 a+=b a=a+b,其他相似 如*= -= \/=<< 位向左移 >>位向右移sizeof 确定占的空间大小 sizeof(int)>< >= <=这就...

按位与的运算规则是什么?
按位与的运算规则:1&1=1;1&0=0;0&1=0;0&0=0。按位与运算按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。参与运算的两个数均以补码出现。

位运算全解
位运算操作的优先级比较低,如int a = 1<<i+1,程序会先计算i+1,再左移操作。例子1 :a=15,b=6计算 a&b:例子2: a=-6,b=-2,计算a&b: 首先得到6的二进制,00000110 负数的二进制需要该数 正数按位取反+1 11111001 加1为 11111010 同理的-2的二进制 11111110 得...

c语言,位符合赋值运算子, =,&=,^=!=, 分别什么含义啊?
这些位运算都是与二进位制码有关的,所以多弄弄也就会了 C语言中复合赋值运算子 :<<= , >>= ,&= ,^= , |= 分别表示什么啊 ? 请高手指点 运算子= 这种组合是赋值语句的一种简写形式,例如: a+=b其实就是a=a+b,只不过你说的是逻辑运算子,道理是一样的. <<是左移,>>是右移,&是与,|是或,^...

位运算常见用法
下面重点说一下按位异或,异或其实就是不进位加法,如1+1=0,,0+0=0,1+0=1。异或的几条性质:1、交换律 2、结合律(即(a b) c == a (b c))3、对于任何数x,都有x x=0,x 0=x 4、自反性: a b b=a^0=a;异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR...

x和y是同一类型变量,设计一算法,把x和y的内容交换?
用C语言吗?int x,y,z;z=x;x=y;y=z;关键就是多设一个中间变量,这个思想什么语言都差不多~

C语言——位运算
5. 按位或(|):双目运算,对位进行“或”操作,无符号a=173和b=203按位或结果为239,有符号数可能变成负数。6. 按位异或(^):双目运算,对位进行“异或”操作,如无符号a=173和b=203按位异或结果为102。位运算操作直接处理二进制数据,对于理解和处理二进制表示的数值非常有效,尤其在处理位...

相似回答
大家正在搜