A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© peide0427 中级黑马   /  2015-10-31 08:58  /  1231 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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");
}

7 个回复

倒序浏览
群里大神那么多,分分钟给你解决了
回复 使用道具 举报
大神不会看这样排版的代码的
回复 使用道具 举报
看的有点蒙了555555555555
回复 使用道具 举报
希望有人可以帮到你
回复 使用道具 举报
(sizeof(int)<<3)-1     分解下:sizeof(int) 表示int类型所占字节数 很简单为4,    <<是左移运算:把整数的各二进位全部左移n位,高位丢弃,低位补0,   <<3表示左移三位,把4的二进制写出了,操作就行了 (使用位运算是在二进制上运算,可以提高一点点的运算效率,一般是那些大神用的. )
回复 使用道具 举报

谢谢~~~
回复 使用道具 举报
就是4<<3结果是32
4左移几就是与2的几次方相乘
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马