Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
270 views
in Technique[技术] by (71.8m points)

syntax - What does <<= represent (in C)?

As the title says I am a bit confused by what <<= represents. I know << is a shift operator, but this is the first time I saw a = along with it. Any clarifications?

Sample code:

#include <stdio.h> 
main() { 
  unsigned int i, s; 
  for( s = i = 0; i <= 7; i++){ 
    switch (i%3) { 
      case 0: i++; 
      case 1: i <<= (7 & (i + 1)) | ((i + 2) & 6); s += i; break; 
      case 2: i += (i ^ i) | 1 ; continue; 
    } 
    s++; 
  } 
  printf("%d
", s); 
} 
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

AFAIK >>= is the "same" operation. you can either call

i = i << 4;

or

i <<= 4;

It has the same effect.

It's like i = i + 5; and i += 5;


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...