概述
(1)C/C++实现
1>基础方法:当然就是常规方法了,一步一步实现,这种方法是最简单最容易想到的但是实现过程是比较麻烦,逻辑行比较强的。先来解释一下我的程序:首先小编将十六进制所表示的数存在了一个字符数组里,共后续程序中计算的结果匹配使用。然后是输入,输入之后要判断输入的十进制数是否在0~15之间,在这之间呢,直接让输入的这个十进制数求余16然后匹配字符数组即可;另一种情况就是这个数比较大,不在0~15之间,那这种情况该怎么办呢?首先我需要把这个十进制数求余16的数字分离出来,然后去数组里面匹配相应的数组,最后输出字符串即可。
#include<iostream>
using namespace std;
int main(){
int a;
int b[100];
char c[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
cin >> a;
if(a >= 0 && a < 16){
int m = a % 16;
for(int i = 0;i < 16;i++){
if(m == i){
cout << c[i];
}
}
}
else{
int i = 0;
while(a != 0){
b[i] = a % 16;
a = a / 16;
i++;
}
for(int j = i - 1;j >= 0;j--){
if(b[j] == 10)
cout << "A";
else if(b[j] == 11)
cout << "B";
else if(b[j] == 12)
cout << "C";
else if(b[j] == 13)
cout << "D";
else if(b[j] == 14)
cout << "E";
else if(b[j] == 15)
cout << "F";
else
cout << b[j];
}
}
return 0;
}
2>格式化转换方法:
C语言实现:在C语言中%d,%o,%x分别表示十进制数,八进制数,十六进制数。%X表示输出字母为大写的十六进制数。
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
printf("%X",n);
return 0;
}
C++语言实现:在C++语言中hex,oct,dec分别表示十六进制数,八进制数和十进制数,具体方法如下:
#include<iostream>
#include<iomanip> //大写输出必须包含该头文件
using namespace std;
int main(){
int n;
cin >> n;
cout << setiosflags(ios::uppercase) << hex << n << endl; //以十六进制大写输出
return 0;
}
文章看到现在是不是觉得还是C/C++的格式化输出更简单一些的,对的,没错!真的!血的教训,能用C/C++自带方法的一定要用C/C++自带的,简单。
(2)Java语言实现
Java语言实现十进制转十六进制的方法在这里我就不使用基本方法了,直接演示格式化转换方法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println(Integer.toHexString(a).toUpperCase());
scanner.close();
}
}
Java的进制转换所用到的方法我会在我的下一篇博客中详细写。先来解释一下代码:
Integer.toHexString(a) 十进制转换十六进制的方法,包含在Integer方法下
toUpperCase() 以大写方法输出
OK!现在就大功告成了,C/C++/Java十进制数转换十六进制数。
最后
以上就是能干小蘑菇为你收集整理的进制转换之十进制转十六进制(C/C++/Java补充博客)的全部内容,希望文章能够帮你解决进制转换之十进制转十六进制(C/C++/Java补充博客)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复