zoukankan      html  css  js  c++  java
  • 48-

    http://lx.lanqiao.cn/problem.page?gpid=T50
        
            基础练习 十六进制转十进制  
    时间限制:1.0s   内存限制:512.0MB
          
    问题描述
      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
    样例输入
    FFFF
    样例输出
    65535
     
    #include <iostream> 
    #include <cstdio>
    #include <cstring>
    using namespace std;
    string str[16] = {"0000", "0001", "0010", "0011",
    				  "0100", "0101", "0110", "0111",
    				  "1000", "1001", "1010", "1011",
    				  "1100", "1101", "1110", "1111"};
    
    int main(){
    	string s0, s1;
    	cin >> s0;
    	int len =s0.length();
    	for(int i = 0; i < len; i++){
    		if(s0[i] >= '0' && s0[i] <= '9'){
    			s1 += str[s0[i] - '0'];
    		}
    		else{
    			s1 += str[s0[i] - 'A' + 10];
    		}
    	} 
    	long long sum = 0;
    	len = s1.length();
    //	for(int i = len - 1, j = 0; i >= 0; i--){
    //		sum += (s1[i] - '0') * (1 << j);
    //		j++;
    //	} 
    	long long t = 1;
    	for(int i = len - 1; i >= 0; i--){ //注意FFFFFFFF=4294967295,int下会 = -1 
    		sum += (s1[i] - '0') * t;
    		t *= 2;
    	} 
    	cout << sum << endl;
    	return 0;
    }
    

      

  • 相关阅读:
    mysql 创建数据库 添加用户 数据库授权给某用户
    Storm近年的发展
    Doris 最佳实践-Compaction调优
    pickle,struct,ujson,orjson 模块
    python用prettytable输出漂亮的表格
    nginx自定义访问日志
    事务 知识点梳理
    14
    13
    8
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8449152.html
Copyright © 2011-2022 走看看