黑马程序员技术交流社区

标题: 大家看看这怎么理解? [打印本页]

作者: peide0427    时间: 2015-10-31 08:58
标题: 大家看看这怎么理解?
#include <stdio.h>
void printBinary(int number);
int main()

{
    printBinary(-10);
   
    return 0;

}

void printBinary(int number)

{
    int temp= (sizeof(int)<<3)-1;//这一部分怎么理解???
    while(temp>=0)
    {
        int value = number>>temp & 1;
   
        printf("%d",value);
            temp--;
        
        
   
    if((temp+1)%4==0)
    {
        printf(" ");
    }
    }
    printf("\n");
}
作者: 秦晓东帅帅哒    时间: 2015-10-31 12:39
群里大神那么多,分分钟给你解决了
作者: yanggangcl    时间: 2015-10-31 14:39
大神不会看这样排版的代码的
作者: xiaobei    时间: 2015-10-31 19:51
看的有点蒙了555555555555
作者: zyios    时间: 2015-10-31 20:58
希望有人可以帮到你
作者: 18120184391    时间: 2015-11-1 07:41
(sizeof(int)<<3)-1     分解下:sizeof(int) 表示int类型所占字节数 很简单为4,    <<是左移运算:把整数的各二进位全部左移n位,高位丢弃,低位补0,   <<3表示左移三位,把4的二进制写出了,操作就行了 (使用位运算是在二进制上运算,可以提高一点点的运算效率,一般是那些大神用的. )
作者: peide0427    时间: 2015-11-1 15:43
18120184391 发表于 2015-11-1 07:41
(sizeof(int)

谢谢~~~
作者: craneteng    时间: 2015-11-1 17:27
就是4<<3结果是32
4左移几就是与2的几次方相乘




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2