[英]what does the following C code translate to?
所以我有一個for循環,如下所示:
for(span=N>>1;span;span>>=1)
我假設開始條件和結束條件等效於以下內容:
span = N>>1; //right shift N by 1 and initialize to span
while(span!=0)
{
span = span >> 1;
}
但是,在我的代碼上下文中,這似乎有些奇怪。 提前致謝!
在每次迭代中,您都將變量跨度除以2,直到達到0。
因此,如果最初N = 8,則span的值將為4,2,1,0->退出循環
那是對的。
span = N >> 1
,將N右移1。 span
,它等於span != 0
。 span
再次右移1。 在正整數的上下文中,這等效於for(span=N/2;span>0;span/=2)
。 但是,在不知道您的特定上下文的情況下,我無法評論這是不是奇怪。
簡短而甜美...是的,只要您已經展示了代碼,您的解釋就堅定而良好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.