首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

帮帮忙!该如何解决

2013-12-02 
帮帮忙!!st[i]st[i-1]1if((t1i)&0x01)这两个语句分别是什么意思?[解决办法]st[i]st[i-1]1//将st

帮帮忙!!
st[i]=st[i-1]<<1;if((t1>>i)&0x01)这两个语句分别是什么意思?
[解决办法]


st[i]=st[i-1]<<1;//将st[i-1]乘以2的值赋给st[i],左移一位等于乘以2
if((t1>>i)&0x01)//将t1右移i位,然后检查最后一位是否是1

[解决办法]
<<是左移操作符
比如st[i-1]=4,二进制就是0100,st[i-1]<<1=0100<<1=1000,就是8
同理,>>是右移

&是逻辑与运算,0x01代表十六进制的1,也就是除了最低位1,其余全部是0
所以就是检查t1右移i位后,最低位是否为1
[解决办法]
st[i]=st[i-1]<<1;  // st[i]=st[i-1] * 2; 的装B写法
if((t1>>i)&0x01)   // 判断t1的第i比特是否为1

热点排行