冰封神奇
2021-10-05 19:29
采纳率: 100%
浏览 34

C语言问题求解答(最好有代码)

img

  • 好问题 提建议
  • 收藏

1条回答 默认 最新

  • 广大菜鸟 2021-10-05 20:22
    已采纳
    
    char* bin2hex(int*a){
        char*numChar=(char*)malloc(sizeof(char)*9);
        int cnt = 0, tmp=0;
        while(cnt<32){
            for(int i=0;i<4;i++){
                tmp = tmp*2 + a[cnt+i]; 
            }
            if(tmp<10){
                numChar[cnt/4] = (char)((int)'0'+tmp);
            }else{
                 numChar[cnt/4] = (char)((int)'A'+(tmp)-10);
            }
            cnt+=4;
            tmp=0;
        }
        numChar[8]='\0';
        return numChar;
    }
    int main(){
        int num[32],cnt=0,time=0;//1个整数32位
        int a = 136;
        char*numChar;
        unsigned tmp = a;
        while(tmp){
            num[31-cnt]=tmp&1;
            tmp>>=1;
            cnt++;
        }
        while(cnt<32){
            num[31-cnt]=0;
            cnt++;
        }
        for(int i=0;i<32;i++){
            if(time>0&&time%4==0)
                printf(" ");
            time++;        
            printf("%d",num[i]);
        }
        printf("\n");
        numChar=bin2hex(num);
        printf("%s\n",numChar);
        system("pause");
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题