深入理解计算机系统练习题3.23疑惑,求大神解答,极度疑惑中
int fun_b(unsigned x){
int val=0;
int i;
for(i=0;x<32;i++){
val=(val<<1) | (x & 0x1);
x>>=1;
}
return val;
}
movl 8(%ebp),%ebx
mov $0,%eax
mov $0,%ecx
.L13:
leal (%eax,%eax),%edx
movl (%ebx,%eax)
andl $1,%eax
orl %edx,%eax
shrl %ebx
addl $1,%ecx
cmpl $32,%ecx
jne .L13
求教大神能跟我解释下这个val<<1是怎么来的!不懂,极度疑惑