• 进制转换


    一、M进制转换成N进制(摘自博客:进制转换

    1. 将M进制数x转化为十进制数y

    十进制数的形式为:d1d2d3d4d5d6...dn = d1 × 10n-1 + d2 × 10n-2 + d3 × 10n-3 + ... + dn-1 × 101 + dn 

    M进制数的形式为:a1a2a3a4a5a6...an = a1 × mn-1 + a2 × mn-2 + a3 × mn-3 + ... + an-1 × m1 + an

    代码:

    参考例题:把26进制转为10进制

    2. 将十进制数y转化为N进制数x

    该过程较为简单,常采用“除取余法”,基即为N,其对y不断地取余。

    示例:十进制数11转化为二进制数。

    对二不断取余:

      第一次: 11%2,余数为1,商为5

           第二次: 5%2,  余数为1,商为2

           第三次: 2%2,  余数为0,商为1

           第四次: 1%2,  余数为1,商为0

    代码:

    二、华为笔试题

    题目一:将十进制数字转化为26进制数,其中26进制数使用a~z来表示。

    #include <iostream>
    #include <sstream>
    #include <algorithm>
    #include <string>
    #include <cstring>
    #include <deque>
    #include <queue>
    #include <map> 
    
    using namespace std;
    
    string s = "abcdefghijklmnopqrstuvwxyz";
    
    string D_To_H(int num)
    {
    	string ans = "";
    
    	do {
    		ans = s[num%26] + ans;
    		num /= 26;
    	} while(num);
    	return ans;
    } 
    
    int main()
    {
    	int num1, num2;
    	cin >> num1;
    	string ans = D_To_H(num1);
    	cout << ans << endl;
    	return 0;
    }

    题目二:输入两个字符串,其中每个字符('a'~'z')都是二十六进制数,试求两个字符串相加的结果。

      

  • 相关阅读:
    第四次作业
    第三次作业
    Java.14
    Java.13
    JAVA.12
    JAVA.11
    JAVA.10
    JAVA.9
    JAVA.8
    JAVA.7
  • 原文地址:https://www.cnblogs.com/xzxl/p/9602033.html
Copyright © 2020-2023  润新知