C/C++<算法>进制转换超详细

小说:拯救地球的美国大片,你看过哪些?作者:陵徒建更新时间:2019-03-22字数:96821

“现在地小孩子真有趣,记得在我离开时,你还是一个孩子,现在,却长得这么大了!”邢天豪的声音在楼宇内出现,带点豪迈地大笑道:“知道我为什么要来吗?小子,你还嫩了点,想跟我斗,仅仅拥有强大地实力是不够的,明白吗?”

我们为什么要工作?

高仙芝的腰却停得笔直,他脸色严峻、目光锐利,审视着城内的一切,城门前戒备森严,每一个进出的人都要受到严格的搜身盘查,并核实身份,非本城的居民要受到控制。
“直说就是,怎么说我现在也是天地会的人。”艾斯德斯五根玉指轻轻在虚空中之中放佛在弹奏无形的古筝一般,但是如果注意看的话就会发现她的每一根手指都会跳跃着两种不同颜色的光芒。

伏羲凛然说道,这也是帝俊和太一顾忌的事情,所以一开始也只能顺着他们的意,让他们做个挂名四皇不去管妖族之事,最多只是在关键时刻出手,而后来女娲成圣之后他们更是事事顺着女娲根本不敢过多得罪女娲,生怕女娲秋后算账。

C/C++<算法>进制转换超详细


16转10

  • 用竖式计算:
    16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2= 2560
第3位: 2 * 16^3 = 8192

-代码

#include <iostream>
#include <string>
using namespace std;
int main() {
    string s;
    while(cin>>s){
        int length=s.length();
        long long sum=0;
        for(int x=0;x<length;x++){
            if(s[x]>="0"&&s[x]<="9"){
                sum=(s[x]-"0")+16*sum;
            }else{
                sum=(s[x]-"A"+10)+16*sum;
            }
        }
        cout<<sum;
    }
    return 0;
}

16转2

  • 由于在二进制的表示方法中,每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,所以,我们可以得出简便的转换方法,将16进制上每一位分别对应二进制上四位进行转换
#include <iostream>
#include <string>
using namespace std;
int main() {
    string s;
    while(cin>>s){
        int length=s.length();
        long long sum=0;
        int answer[40];
        int cot=0;
        for(int x=0;x<length;x++){
                int y=2;
            if(s[x]>="0"&&s[x]<="9"){
               y=(s[x]-"0");
            }else{
               y=(s[x]-"A"+10);
            }
            do{
                answer[cot++]=y%2;
                 y/=2;
            }while(y!=0);
        }
       for(int i=0;i<cot;i++){
            cout<<answer[cot-1-i];
       }

    }
    return 0;
}

2转16进制

  • 16进制就有16个数,0~15,用二进制表示15的方法就是1111,从而可以推断出,16进制用2进制可以表现成0000~1111,顾名思义,也就是每四个为一位

0 0 1 1| 1 1 0 1
左半边=2+1=3 右半边=8+4+1=13=D
  • 代码

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
    string s;
    while(cin>>s){
        int length=s.length();
        string s2;
        int pro=1,sum=0,cot=0;
        for(int x=length-1;x>=0;x--){
             sum+=(s[x]-"0")*pro;
             pro=pro*2;
            if(x%4==0){
               if(sum>=10){
                  s2+=sum-10+"A";
               }else{
                  s2+=sum+"0";
               }
                pro=1;
                sum=0;
             }
        }
       reverse(s2.begin(),s2.end());
       cout<<s2;

    }
    return 0;
}

10进制转16进制

-代码

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
    long long s;
    while(cin>>s){
        char ans[20]={0};
        int cot=0;
       do{
        if(s%16>=10){
            ans[cot++]=s%16-10+"A";
        }else{
            ans[cot++]=s%16+"0";
        }
        s/=16;
       }while(s);

        for(int i=0;i<cot;i++){
            cout<<ans[cot-1-i];
        }
    }
    return 0;
}

十六进制转八进制

  • 一开始想的是把16进制先转化为10进制,因为从10进制转化为8进制很容易。但是题目中输入的16进制位数规模大,不超过100000位,肯定不能化为10进制数。解法是先把16进制化为四个2进制数,然后三个二进制数一组再化为8进制。 注意 39(16进制)--〉0011 1001 (2进制) --〉111 001(8进制),是从二进制的低位开始三个一组来计算。
  • 代码

当前文章:http://zxqss.com/html_81065.html

发布时间:2019-03-22 04:22:14

怎么说呐,大家放心 如果你已经20岁.... 文化监理 - 黄胤然首倡文化新概念 青年创业者为什么失败几率高? 天津心理工作站战友印象之赵海华 欧美艳照门:你看见的只是冰山一角 新加坡心理卫生学院调查显示 15%病态赌徒曾想自杀 金钱才是爱情的源泉

电影《新步步惊心》是对电视版的升华吗? 宝宝皮肤过敏日常护理 中国互联网企业退市潮来了? 新时代的养育观——你知道么? 穿运动装的那些人 如何才能不伤感情地吵架? 这一秒,你可以改写人生 冬季放生龟鳖类要考虑的注意事项 罗李华简谈2016年十二生肖运势 茶叶的基本分类,品质的概念。 一只狗的绝望体验 孩子早恋的父母们应该读的一篇美文:柳眉儿落了 如果詹姆斯•邦德为你煮面条 没有仪式感的爱情,不会长久 孩子幼升小,你准备好了吗? 为什么现在的女孩越来越难追? 三成网民“不快乐” 网瘾难逃离 你还这么年轻,不必活得好像历经沧桑 双章书法 - 黄胤然首倡文化理念

编辑:邓道

我要说两句: (0人参与)

发布