解释下这个问题。a=10,b=15,在不用第三方变量的前提下,把a,b的值互换(需要代码最短)
1个回答
展开全部
a=10=0x0a=00001010b(在内存或计算机处理数据时),
b=15=0x0f=00001111b(在内存或计算机处理数据时)
所以,在a^=b^=a^=b;执行计算时,
先执行:a^=b(最右边),即a=a^b=00001010b^00001111b=00000101b=0x05
再执行:b^=a(中间),即b=b^a=00001111b^00000101b=00001010b=0x0a=10
再执行:a^=b(最左边),即a=a^b=00000101b^00001010b=00001111b=0x0f=15
故达成目标。
b=15=0x0f=00001111b(在内存或计算机处理数据时)
所以,在a^=b^=a^=b;执行计算时,
先执行:a^=b(最右边),即a=a^b=00001010b^00001111b=00000101b=0x05
再执行:b^=a(中间),即b=b^a=00001111b^00000101b=00001010b=0x0a=10
再执行:a^=b(最左边),即a=a^b=00000101b^00001010b=00001111b=0x0f=15
故达成目标。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询