首页 > 其他分享 >12进制转10进制再转2进制【华中科技大学考研机试题】

12进制转10进制再转2进制【华中科技大学考研机试题】

时间:2023-02-27 10:01:07浏览次数:31  
标签:10 进制 输出 int 华中科技大学 二进制 十进制

12进制转10进制再转2进制

十二进制是数学中一种以 12为底数的计数系统,它由 0∼9,a,b组成,与十进制的对应关系是:0∼9对应 0∼9,a对应 10,b对应 11。

例如,十二进制的 a2,十进制是 122。

输入一个仅含十二进制数字的字符串(字母一律小写,不超过 8
个字符),完成下列任务:

输出该十二进制数每一位对应的十进制数(从高位到低位顺序输出,空格隔开);
实现“十二进制”转“十进制”算法,输出该十二进制数对应的十进制数;
输出转换后的十进制数在内存中的每个二进制位(共 4 字节,每字节之间空格隔开)。
输入格式

输入一个十二进制数(字母一律小写,不超过 8 个字符)。

输出格式

第一行输出该十二进制数每一位对应的十进制数(由高位到低位,以空格隔开)。

第二行输出该十二进制数对应的十进制数。

第三行输出转换后的十进制数在内存中的每个二进制位(共 4
个字节,每字节之间空格隔开)。

输入样例:

a2
输出样例:

10 2
122
00000000 00000000 00000000 01111010

代码

点击查看代码
#include<iostream>


using namespace std;

const char nl = '\n';
const int N = 32;
int st[N];
int main(){
    string s;
    cin >> s;
    int j;
    if(s[0] == '-')j = 1;	//注意可能是负数
    else j = 0;
    int ret = 0;
	//12进制转10进制(高进制转10进制)
    for(int i = j; i <= s.size() - 1; i ++ ){
        ret *= 12;
        if(s[i] >= '0' && s[i] <= '9'){
            ret += s[i] - '0';
            cout << s[i] - '0' << ' ';
        }
        else{
            ret += s[i] - 'a' + 10;
            cout << s[i] - 'a' + 10 << ' ';
        }
    }
    if(!j)cout << nl << ret << nl;
    else cout << nl << -ret << nl << '-';
	//10进制转2进制(10进制转低进制·)
    int top = 0;
    while(ret){
        st[++top] = ret & 1;
        ret >>= 1;
    }
    int cnt = 0;
    int t = 32 - top;
    while(t --){
        cout << 0;
        cnt ++;
        if(cnt % 8 == 0)cout << ' ';
    }
    while(top){
        cout << st[top --];
        cnt ++;
        if(cnt % 8 == 0)cout << ' ';
    }
}

标签:10,进制,输出,int,华中科技大学,二进制,十进制
From: https://www.cnblogs.com/J-12045/p/17158670.html

相关文章

  • 16进制转10进制【北京大学考研机试题】
    16进制转10进制写出一个程序,输入一个十六进制的数值字符串,输出该数值的十进制字符串。输入格式输入包含多组测试数据。每组数据占一行,包含一个十六进制的数值字符串。......
  • 十进制转八进制【华中科技大学考研机试题】
    十进制转八进制点击查看代码输入一个整数N,将其转换成八进制数输出。输入格式输入包含多组测试数据。每组数据占一行,包含一个整数N。输出格式每组数据输出占......
  • 二进制中1的个数
    二进制中1的个数输入一个32位整数,输出该数二进制表示中1的个数。注意:负数在计算机中用其绝对值的补码来表示。数据范围−100≤输入整数≤100样例1输入:9输出:2......
  • 登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
    人工智能太疯狂,传统劳动力和内容创作平台被AI枪毙,弃尸尘埃。并非空穴来风,也不是危言耸听,人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程,你问我绘画行......
  • 免费领取2023年上半年系统集成项目管理工程师重要知识点10G学习资料包
    课课家软考学院为2023年上半年系统集成项目管理工程师考生整理了2023年上半年系统集成项目管理工程师重要知识点10G学习资料的内容,希望能帮助考生掌握系统集成项目管理......
  • x210-2023-02-26
    1、个人猜测可能出于成本的考虑,厂家在BV4S上使用的ddr2芯片由原来三星的K4T1G164QE更换成了现在SPECTEK的PD723-25,即PRN系列,具体查询可以从SPECTEKSUPPORT网站上获得,这里......
  • 量化交易基础 - 10 - 拟合
    10-拟合然而,在判定量化策略的优度时,仍有一个极其重要的指导原则,这就是过度拟合。模型的过度拟合本质上意味着研究员使用过多的数据。最经典的定义是研究员建立了一个能......
  • 基础10:MySQL数据类型
    一、MySQL中的数据类型类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型......
  • 在1-100中打印出3的倍数
    #include<stdio.h>intmain(){intn=0;for(inti=1;i<101;i++){if(i%3==0){printf("%d是3的倍数\n",i);n++;}}printf("在1-......
  • #10051. 「一本通 2.3 例 3」Nikitosh 和异或
    求两段不相交子序列,他们异或和的和最大  #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=4e5+4;intch[N*32......