zoukankan      html  css  js  c++  java
  • 十二进制的处理

    hust上机题

    题目描述:

    输入一个仅含有十二进制数字的字符串(字母一律小写,不超过八个字符)

    完成以下任务

    1、输出该十二进制数每一位对应的十进制数(从高位到低位顺序输出,空格隔开);

    2、实现十二进制转十进制的算法,输出该是二进制数对应的十进制数

    3、输出转换后的十进制数在内存中的每个二进制位。

    思想:

    1、对于每个字符逐个进行分析

    2、从低位往高位算(注意,数据存储的时候高位反而存的事低位的数,下标要先挪到数组最高位再倒着计算),对于每个字符先转为十进制数,再乘以12的对应权值幂次方;累加即可

    3、对于2的结果,先建立一个32位的数组,初始化数组为0,下标挪到数组最高位倒着一边余2一边保存余数到数组中。注意当停止/2操作时还有一个余数,也要一并保存数组当中。

    代码实现:

     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 int dozenchartodecem(char c)
     5 {
     6     int result=-1;
     7     if(c>'0'&&c<='9')
     8         {
     9             result =c-'0';
    10         }
    11         else if(c=='a')
    12         {
    13             result =10;
    14         }
    15         else if(c=='b') result=11;
    16         return result;
    17 }
    18 
    19 int main()
    20 {
    21     char num[100];
    22     cout<<"请输入十二进制数"<<endl;
    23     cin>>num;
    24 
    25     //把十二进制数改十进制
    26     int result=-1,i=0;
    27     int sum=0,weight=0;
    28     while(num[i]!='')
    29     {
    30         cout<<dozenchartodecem(num[i])<<" ";
    31         i++;
    32     }
    33     i=0;
    34     while(num[i]!='')i++;//由于计算要从低位到高位计算,要把i移到字符串末尾
    35     i--;//i回退一位
    36     while(i>=0){//逐位进行计算
    37             sum=sum+dozenchartodecem(num[i])*pow(12,weight);
    38         weight++;
    39         i--;
    40     }
    41     cout<<endl;
    42     cout<<sum<<endl;
    43     //十进制数在内存中的每个二进制位
    44 
    45     int bin[32];
    46 
    47     for(i=0;i<32;i++)
    48         bin[i]=0;
    49     i=31;
    50     while(sum/2!=0){
    51         bin[i]=sum%2;
    52         sum/=2;
    53         i--;
    54     }
    55     //还剩最后一个余数要处理***
    56     bin[i]=sum;
    57     for(i=0;i<32;i++)
    58     {
    59         cout<<bin[i];
    60         if((i+1)%8==0){
    61             cout<<' ';
    62         }
    63     }
    64     cout<<endl;
    65 
    66     return 0;
    67 }
  • 相关阅读:
    zookeeper使用场景
    zookeeper安装配置
    hadoop 远程调试
    deep learning笔记
    Sentiment Analysis(1)-Dependency Tree-based Sentiment Classification using CRFs with Hidden Variables
    PRML阅读笔记 introduction
    Python 学习笔记(2)
    python nltk 学习笔记(5) Learning to Classify Text
    python nltk 学习笔记(4) Writing Structured Programs
    python nltk 学习笔记(3) processing raw text
  • 原文地址:https://www.cnblogs.com/AKsnoopy/p/10415703.html
Copyright © 2011-2022 走看看