我是靠谱客的博主 踏实纸鹤,最近开发中收集的这篇文章主要介绍进制转换II(JSU-ZJJ) 时间限制: 3 Sec 内存限制: 64 MB,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述
给定一个二进制表示的非负整数,将其转换为十六进制数。
输入
输入数据有多组,第一行为数据的组数T,接下来有T组数据。
每组数据占一行,每行为一个二进制整数(不含多余的前导0),最多1000位。
输出
输出对应的十六进制数,字母用大写表示。
样例输入 Copy
2
1111
10100100
样例输出 Copy
F
A4

#include<stdio.h>
#include<string.h>
int main()
{

    int t;
    char a[1000],b[1000];
    int sum,i,j,m,k;
    while(~scanf("%d",&t))
    {
        getchar();
        while(t--)
        {
            k=0;
            scanf("%s",a);
            i=strlen(a)-1;
            while(i>=0)
            {
                sum=0;m=1;
                for(j=0;j<4;j++)
                {
                    if(i<0)
                        break;
                    sum+=(a[i--]-'0')*m;
                    m*=2;
                }
                //每四位取一下
                if(sum>=10)
                    b[k++]=sum-10+'A';
                else b[k++]=sum+'0';
                //判断是否需要加字母

            }
            for(i=k-1;i>=0;i--)
                printf("%c",b[i]);
            printf("n");
        }
    }
    return 0;
}

最后

以上就是踏实纸鹤为你收集整理的进制转换II(JSU-ZJJ) 时间限制: 3 Sec 内存限制: 64 MB的全部内容,希望文章能够帮你解决进制转换II(JSU-ZJJ) 时间限制: 3 Sec 内存限制: 64 MB所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部