专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

十六进制转十进制怎么转(十六进制怎么转十进制)

来源:小易整编  作者:小易  发布时间:2023-02-21 06:15
摘要:十六进制转十进制怎么转(十六进制怎么转十进制)【问题描述】从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。【样例输入】FFFF【样例输...

十六进制转十进制怎么转(十六进制怎么转十进制)

【问题描述】


从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。


注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

十六进制转十进制怎么转(十六进制怎么转十进制)


【样例输入】


FFFF


【样例输出】


65535


【解题思路】


下面C++和JAVA的代码分析:


十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……


所以,在第N(N从0开始)位上,如果是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。


C代码:注意数据类型设置,转换后的十进制数需要long long 型。输出使用格式控制符 %I64d。


【C 参考代码】


 1#include<stdio.h>
2#include<string.h>
3int main(void)
4

5  char s[20],hex[20];
6  int i,j;
7  long long num;
8  gets(s);
9  /* 取出字符串中的十六进制字符  */
10  for(i=0,j=0;s[i]!='\0';i++)
11   { 
12     if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='F')
13       {
14            hex[j]=s[i];
15            j++;
16       }
17   }
18   hex[j]='\0';
19    /* 十六进制转十进制 */  
20   num=0;   
21   for(i=0;hex[i]!='\0';i++)
22   {
23           if(hex[i]>='0'&&hex[i]<='9')
24               num=num*16+hex[i]-'0';
25           else if(hex[i]>='A'&&hex[i]<='F')
26               num=num*16+hex[i]-'A'+10;           
27   } 
28   printf("%I64d\n",num);           
29   return 0;
30}


【C++ 参考代码】


 1#include <bits/stdc++.h>
2using namespace std;
3int main() {
4    string s;
5    cin >> s;
6    long long n = 0;
7    for (int i = s.size() - 1, power = 1; ~i; i--, power *= 16) {
8        if (s[i] >= 'A' && s[i] <= 'Z') {
9            n += 1LL * (s[i] - 'A' + 10) * power;
10        }
11        else {
12            n += 1LL * (s[i] - '0') * power;
13        }
14    }
15    cout << n << '\n';
16    return 0;
17}


【Java 参考代码】


 1import java.util.*;
2
3public class Main {
4    public static void main(String[] args{
5        String s = new Scanner(System.in).nextLine();
6        long n = 0;
7        for (int i = s.length() - 1, power = 1; i >= 0; i--, power *= 16) {
8            if (s.charAt(i) >= 'A' && s.charAt(i) <= 'F') {
9                n += (long)(s.charAt(i) - 'A' + 10) * power;
10            }
11            else {
12                n += (long)(s.charAt(i) - '0') * power;
13            }
14        }
15        System.out.println(n);
16    }
17}



本文地址:百科问答频道 https://www.neebe.cn/wenda/903200.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 16进制转换10进制怎么算,16进制转换和10进制相互转换

    16进制转换10进制怎么算,16进制转换和10进制相互转换

    16进制转换10进制怎么算,16进制转换和10进制相互转换十六进制顾名思义,是由十六个符号的,分别是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f和八进制、二进制、十进制有所不同,它是由英文字符的。这是十六个字符分别对应十进...

  • 十六进制转换怎么算,十六进制转换

    十六进制转换怎么算,十六进制转换

    十六进制转换怎么算,十六进制转换目录一、十六进制----1.0、十六进制转二进制(整数、小数)----1.1、十六进制转八进制(整数、小数)----1.2、十六进制转十进制进制(整数、小数)正文一、十六进制概念:十六进制是一种以16为基数的...

  • 十六进制颜色代码查询,十六进制颜色代码对照表

    十六进制颜色代码查询,十六进制颜色代码对照表

    十六进制颜色代码查询,十六进制颜色代码对照表我们在做网页时,经常会用到十六进制颜色代码,一个漂亮的网页,它的颜色搭配必定有讲究,下表是一些常用的颜色及十六进制颜色代码对照,记录在此,以便查阅!...

  • 十六进制转十进制怎么转(十六进制怎么转十进制)

    十六进制转十进制怎么转(十六进制怎么转十进制)

    十六进制转十进制怎么转(十六进制怎么转十进制)【问题描述】从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。【样例输入】FFFF【样例输...

  • 周排行
  • 月排行
  • 年排行

精彩推荐