失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言蓝桥十进制转十六进制 蓝桥杯:基础练习 十进制转十六制

c语言蓝桥十进制转十六进制 蓝桥杯:基础练习 十进制转十六制

时间:2023-06-30 16:14:05

相关推荐

c语言蓝桥十进制转十六进制 蓝桥杯:基础练习 十进制转十六制

基础练习 十进制转十六进制

时间限制:1.0s 内存限制:512.0MB

问题描述

十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。

给出一个非负整数,将它表示成十六进制的形式。

输入格式

输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647

输出格式

输出这个整数的16进制表示

样例输入

30

样例输出

1E 分析数据规模在long范围之内,因此,直接调用封装好的方法实现。

import java.util.Scanner;

public class Main{

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

long number = sc.nextLong();

String arry = Long.toHexString(number);//十进制转十六进制

arry = arry.toUpperCase();

System.out.println(arry);

}

}

之后自己写了算法实现:16进制可理解为逢16进1,因此在循环中对十进制数进行 mod 16(十进制数不断累除16,产生新的十进制数),获取余数,再对余数进行判断,若<10,则该位为此余数。否则,10->A,11->B,12->C,13->D,14->E,15->F。通过建立StringBuilder对象 和append()方法,连接每位16进制数,其中获取到的16进制字符串为逆序的16进制字符串,需要进行逆序操作,最终转换为16进制字符串

import java.util.Scanner;

public class Main{

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

long number = sc.nextLong();

int remainder = 0;

int len;

StringBuilder st = new StringBuilder();

do{

remainder = (int) (number % 16);

number = number / 16;

switch (remainder) {

case 10:

st.append("A");

break;

case 11:

st.append("B");

break;

case 12:

st.append("C");

break;

case 13:

st.append("D");

break;

case 14:

st.append("E");

break;

case 15:

st.append("F");

break;

default:

st.append(remainder);

break;

}

}while(number >= 1);

len = st.toString().length();

char [] arry = st.toString().toCharArray();

st = new StringBuilder();

for(int i = len - 1; i >= 0; i--){

st.append(arry[i]);

}

System.out.println(st);

}

}

如果觉得《c语言蓝桥十进制转十六进制 蓝桥杯:基础练习 十进制转十六制》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。