zoukankan      html  css  js  c++  java
  • 华为:十六进制转换成十进制

    进制转换

    写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

    输入描述:

    输入一个十六进制的数值字符串。

    输出描述:

    输出该数值的十进制字符串。

    输入例子:
    0xA
    输出例子:
    10

    解题
    十六进制转换成十进制
    如下

    定义

    16进制即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15。故而有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数。

    转换

    编辑
    16进制到十进制
    16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
    所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
    例:2AF5换算成10进制:
    用竖式计算:
    第0位: 5 * 16^0 = 5
    第1位: F * 16^1 = 240
    第2位: A * 16^2= 2560
    第3位: 2 * 16^3 = 8192
    -------------------------------------
    10997
    直接计算就是:
    5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997
     
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                String str =in.next();
                int num = 0;
                int len = str.length() -2;
                for(int i =2;i<str.length();i++){
                    char ch = str.charAt(i);
                    int byt = getNum(ch);
                    num += byt*Math.pow(16,len-( i -1));
                     
                }
                System.out.println(num);
            }
        }
        public static int getNum(char ch){
            switch(ch){
                case '0': return 0;
                case '1': return 1;
                case '2': return 2;
                case '3': return 3;
                case '4': return 4;
                case '5': return 5;
                case '6': return 6;
                case '7': return 7;
                case '8': return 8;
                case '9': return 9;
                case 'a':
                case 'A': return 10;
                case 'b':
                case 'B': return 11;
                case 'c':
                case 'C': return 12;
                case 'd':
                case 'D': return 13;
                case 'e':
                case 'E': return 14;
                case 'f':
                case 'F': return 15;
                default:return 0;
                 
            }
        }
    }
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/theskulls/p/5289021.html
Copyright © 2011-2022 走看看