zoukankan      html  css  js  c++  java
  • 十六进制与十进制之间的相互转换

    首先说一下十六进制转换为十进制的方法 

    每一位数乘以十六的位数-1次方和即为十进制,即:

    sum+=第几位*pow(16,位数-1-第几位);

    实行代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main(){
     5     string str;
     6     cin>>str;
     7     int len=str.size();
     8     long long sum=0;
     9     for(int i=0;i<len;i++){
    10         if(str[i]=='1'){
    11             sum+=1*pow(16,len-1-i);
    12             continue;
    13         }
    14         if(str[i]=='0'){
    15             sum+=0*pow(16,len-1-i);
    16             continue;
    17         }
    18         if(str[i]=='2'){
    19             sum+=2*pow(16,len-1-i);
    20             continue;
    21         }
    22         if(str[i]=='3'){
    23             sum+=3*pow(16,len-1-i);
    24             continue;
    25         }
    26         if(str[i]=='4'){
    27             sum+=4*pow(16,len-1-i);
    28             continue;
    29         }
    30         if(str[i]=='5'){
    31             sum+=5*pow(16,len-1-i);
    32             continue;
    33         }
    34         if(str[i]=='6'){
    35             sum+=6*pow(16,len-1-i);
    36             continue;
    37         }
    38         if(str[i]=='7'){
    39             sum+=7*pow(16,len-1-i);
    40             continue;
    41         }
    42         if(str[i]=='8'){
    43             sum+=8*pow(16,len-1-i);
    44             continue;
    45         }
    46         if(str[i]=='9'){
    47             sum+=9*pow(16,len-1-i);
    48             continue;
    49         }
    50         if(str[i]=='A'){
    51             sum+=10*pow(16,len-1-i);
    52             continue;
    53         }
    54         if(str[i]=='B'){
    55             sum+=11*pow(16,len-1-i);
    56             continue;
    57         }
    58         if(str[i]=='C'){
    59             sum+=12*pow(16,len-1-i);
    60             continue;
    61         }
    62         if(str[i]=='D'){
    63             sum+=13*pow(16,len-1-i);
    64             continue;
    65         }
    66         if(str[i]=='E'){
    67             sum+=14*pow(16,len-1-i);
    68             continue;
    69         }
    70         if(str[i]=='F'){
    71             sum+=15*pow(16,len-1-i);
    72             continue;
    73         }
    74     }
    75     cout<<sum<<endl;
    76     return 0;
    77 } 

    十进制转换为十六进制

    由于十六进制的表示方法包含字符,我们可借用一个字符数组ch[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}

    每当十进制数对16取余时即可对应其中的字符来找到十六进制的表示方法。

    实行代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        char ch[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        long long n;
        stack<char> s;
        cin>>n;
        while(n>=16){//注意等于时也要取模,即留零进一 
            s.push(ch[n%16]);
            n/=16;
        }
        s.push(ch[n]);
        while(!s.empty()){
            cout<<s.top();
            s.pop();
        }
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    深入PHP内核之全局变量
    关于PHP中的opcode
    深入PHP内核之opcode handler
    virtual memory exhausted: Cannot allocate memory
    Nginx配置error_page 404错误页面
    PHP 与 UTF-8
    define() vs const 该如何选择?
    CentOS安装配置Samba
    当···时发生了什么?
    PHP中curl的使用
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/6421747.html
Copyright © 2011-2022 走看看