在c程序中变量可以乘以8的方式有多少?我知道
1. a*8
2. a<<8 ?
还有其他方法吗?这是技术能力测试问题。
答案 0 :(得分:0)
a<<8
与a * 8
不同。
a<<1
相当于a*2
a<<2
相当于a*4
a<<3
相当于a*8
a<<8
相当于a*256
。
如果你真的想要其他方式,一些迂腐的东西:
a+a+a+a + a+a+a+a
a<<1 + a<<1 + a<<1 + a<<1
a<<2 * 2
2*(a<<1 + a<<1)
2*(a<<1)*2
a*2*2*2
a*(2<<2)
a*(4<<1)
答案 1 :(得分:0)
自
以来,你可以将它自己添加7次8 * a
等于
a + a + a + a + a + a + a + a + a。
答案 2 :(得分:0)
当你说&#34;变量&#34;时,你还需要考虑该变量的类型。
位移仅适用于无符号变量或有符号变量,前提是该值不是负数,如果数字足够高,将其乘以8会使目标变量溢出,即使其中一些也可能失败。数据类型。你的位移通常也不会在浮点上工作。
我喜欢上面的一些答案,让我轻笑: - )