Java实现十进制数转十六进制数

Now~Let's begin our second question~

如何利用Java语言将十进制数字转换成十六进制数字呢?

我第一次编码出来的效果是酱紫的~

/*** */
package com.succez.task2;import java.util.Scanner;/*** <p>Copyright: Copyright (c) 2018</p>* <p>succez</p>* @author ZhangJinjin* @createdate 2018年5月3日*/
public class intToHex {/*** 先输入一个整型数字,判断其是否为0,若为0,则其16进制同样为0;* 若number不为0,则对16取余,并转换成16进制相应的字符;* number=number/16,重复过程2、3,用字符数组s依次保存每一位;* 输出的时候逆序输出即可*/public static void main(String[] args) {Scanner sc = new Scanner(System.in);int number = sc.nextInt();int i = 0;char[] S = new char[100];if(number == 0){System.out.print(0);}else{while(number!=0)  {int t=number%16;if(t >=0 && t<10)  {S[i] = (char)(t+'0');i++;}else{S[i] = (char)(t+'A'-10);i++;}number=number/16;} for (int j=i-1;j>=0;j--){  System.out.print(S[j]);}}}
}

 

Of course It's true~

As you can see from the picture~


然而,经过讨论,我们发现尽管这样可以实现它的功能,但是需要费脑子去思考,那么,可不可以很明显清晰地表达呢~

那么,经过一番修改,这样子应该可以了吧~

/*** */
package com.succez.task2;import java.util.Scanner;/*** <p>Copyright: Copyright (c) 2018</p>* <p>succez</p>* @author ZhangJinjin* @createdate 2018年5月4日*/
public class intToHex_Alter {/*** 这次算法用了StringBuffer效率更好*/public static void main(String[] args) {// TODO Auto-generated method stub
System.out.println("请输入要转换的十进制的数:");Scanner input = new Scanner(System.in);int n = input.nextInt();        System.out.println("转换的十六进制的数为:"+intToHex(n));}private static String intToHex(int n) {StringBuffer s = new StringBuffer();String a;char []b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};while(n != 0){s = s.append(b[n%16]);n = n/16;            }a = s.reverse().toString();return a;}}

嘻嘻~已经提交啦,OK~

下面来看看 StringBuffer

 

String类型的相加效率并不高,所以这个时候就要考虑StringBuffer里面的append()这个方法~

OK,简直完美~

/*** */
package com.succez.task2;import java.util.Scanner;/*** <p>Copyright: Copyright (c) 2018</p>* <p>succez</p>* @author ZhangJinjin* @createdate 2018年5月4日*/
public class intToHex_Alter {/*** 这次算法用了StringBuffer效率更好*/public static void main(String[] args) {// TODO Auto-generated method stub
System.out.println("请输入要转换的十进制的数:");Scanner input = new Scanner(System.in);int n = input.nextInt();        System.out.println("转换的十六进制的数为:"+intToHex(n));}private static String intToHex(int n) {//StringBuffer s = new StringBuffer();StringBuilder sb = new StringBuilder(8);String a;char []b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};while(n != 0){sb = sb.append(b[n%16]);n = n/16;            }a = sb.reverse().toString();return a;}}

 


 

转载于:https://www.cnblogs.com/zxcjj/p/8990540.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]JavaScript:只能输入数字(IE、FF)

本文转自&#xff1a;http://www.cnblogs.com/ly5201314/archive/2009/03/04/1402993.htmlJavaScript&#xff1a;只能输入数字(IE、FF) 为了解决只能输入数字的问题&#xff0c;网上有许多资料&#xff0c;现归拢一下。 一、不带负号的输入 这里&#xff0c;没有解决“正负号”…

每日一题(6)—— sizeof用法

已知int a&#xff0c;一下那种写法是错误的&#xff1f; A. sizeof(int); B. sizeof(a); C. sizeof int; D. sizeof a;以下答案是来自《C语言深度剖析》&#xff1a;

现在做硬件工程师还有前途吗?

这个问题是我在知乎看到的。问这个问题的&#xff0c;要么是正在从事硬件工作&#xff0c;要么是准备入行的新人。我工作年限不久&#xff0c;工作4年多。我先发表自己的一些观点&#xff0c;可能不对&#xff0c;勿喷&#xff0c;然后我再截取部分知乎上网友的回答。我大学的专…

58同城沈剑:好的架构是进化来的,不是设计来的

虽然这篇文章写的比较早&#xff0c;但是&#xff0c;还是很有参考意义&#xff0c;值得好好品读思考。看看别人是怎么思考就架构这种事情。 好的架构不是设计出来的而是演进出来的 对很多创业公司而言&#xff0c;在初期的时候&#xff0c;我们很难在初期就预估到流量十倍以后…

[译]5 Mac OS X RSS Readers Worth Giving a Shot

5 Mac OS X RSS Readers Worth Giving a Shot Mac OS X 下5款值得关注的RSS 阅读工具 There was once a time when my favorite RSS reader cost a fair but not insignificant price and the open source alternative wasn’t up-to-snuff. I won’t name any names, though y…

每日一题(7) —— 求余运算符

设有以下语句:int x10;x3x%(-3),则x的值是: A.11 B.12 C.14 D.15分析&#xff1a; 求余运算&#xff0c;除数和被除数都可以是负的&#xff0c;求余后的值 与 被除数 的符号相同&#xff0c;比如 -10 % -3 -1, 10 % -3 1。

一文读懂 Linux 内存分配全过程

在《你真的理解内存分配》一文中&#xff0c;我们介绍了 malloc 申请内存的原理&#xff0c;但其在内核怎么实现的呢&#xff1f;所以&#xff0c;本文主要分析在 Linux 内核中对堆内存分配的实现过程。本文使用 Linux 2.6.32 版本代码内存分区对象在《你真的理解内存分配》一文…

CodeForces - 540D Bad Luck Island —— 求概率

题目链接&#xff1a;https://vjudge.net/contest/226823#problem/D The Bad Luck Island is inhabited by three kinds of species: r rocks, s scissors and p papers. At some moments of time two random individuals meet (all pairs of individuals can meet equiprobabl…

你真的理解内存分配吗?

内存是计算机中必不可少的资源&#xff0c;因为 CPU 只能直接读取内存中的数据&#xff0c;所以当 CPU 需要读取外部设备&#xff08;如硬盘&#xff09;的数据时&#xff0c;必须先把数据加载到内存中。我们来看看可爱的内存长什么样子的吧&#xff0c;如图1所示&#xff1a;一…

Linux使用技巧15则

初用Linux时可能有处处不方便的感觉, 可是等使用一段时间掌控了一些技巧后就会感到越来越顺手了&#xff0c;以下是使用Linux积累的一些经验和技巧。 1.使用虚拟控制台登录后按Alt F2键这时又能够看到"login:"提示符&#xff0c;这个就是第二个虚拟控制台。一般新安装…

每日一练(8)—— 野指针

int *p&#xff1b; int a 20; *p a; printf("%d",*p);运行结果是什么&#xff1f;A.10 B.a 的 地址值 C.编译错误 D.运行异常分析&#xff1a; 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针&#xff0c;它的缺省值是随机的&#xff0…

去除桌面图标的小箭头

首先&#xff0c;单击“开始”按钮&#xff0c;选择“运行”&#xff0c;在运行对话框中键入regedit后回车&#xff0c;即可进入注册表编辑器&#xff0c;选择HKEY_CLASSES_ROOTlnkfile,在右边的窗口中找到字符串值“isshortcut”,按DELETE键将其删除。然后&#xff0c;仍在HKE…

杂思

移动互联网,大数据,云计算,人工智能 5个小时的比赛&#xff0c;挑战的是人类脑力和体力的极限。要应对的是由数据结构、图论、计算几何与数论、算法、机器学习、模式识别等科目混合而成的考题&#xff0c;解答它们需要严密的思维方式和长期训练的思维能力。它还考察你的团队协作…

深信服2021秋招笔试题

来源于读者投稿&#xff0c;作者Angel。笔试时间&#xff1a;2020.08.25&#xff0c;19&#xff1a;00---21&#xff1a;00。岗位&#xff1a;嵌入式软件工程师。题型&#xff1a;5个不定项选择题&#xff0c;16分5个填空题&#xff0c;19分2道编程题&#xff0c;65分不定项选择…

每日一题(9)—— 写一个标准宏MIN,这个宏输入两个参数并返回较小的一个

写一个标准宏MIN&#xff0c;这个宏输入两个参数并返回较小的一个。 分析&#xff1a; 宏定义的注意两点&#xff1a; 1、数据类型是否有溢出的风险&#xff08;如一年有多少个秒的宏&#xff09;&#xff1b; 2、带参宏的每个参数都要用括号括起来。 #define MIN(x,y) ((x)…

用ISA阻挡用户向论坛发贴子

右击访问网站这条策略&#xff0c;点击“配置HTTP”<?XML:NAMESPACE PREFIX V /><?XML:NAMESPACE PREFIX O />找到方法选项&#xff0c;并添加一条阻止的HTTP命令POST应用ISA的配置转载于:https://blog.51cto.com/freemanluo/186829

看我解决Linux下的OTG切换问题

1.硬件原理图看下面的原理图VCC_OTG_EN 引脚&#xff0c;这个脚主要是用来控制给外部OTG设备提供电源控制的。如果设备作为DEVICE设备&#xff0c;这时候VBUS的电是由外部提供的&#xff0c;比如通过USB线和电脑连接&#xff0c;这个时候&#xff0c;VBUS的电压是由电脑提供的。…

poj3190 Stall Reservations(贪心+STL)

https://vjudge.net/problem/POJ-3190 cin和scanf差这么多么。。tle和300ms 思路&#xff1a;先对结构体x升序y升序&#xff0c;再对优先队列重载<&#xff0c;按y升序。 然后依次入队&#xff0c;如果node[i].x<q.top().y ans&#xff0c; 否则出队&#xff0c;入队&…

每日一题(10)—— 数组与指针

分析下面的代码&#xff0c;求输出结果。 int a[5] {1,2,3,4,5};int *p (int *)(&a 1);printf("%d %d",*(a 1),*(p - 1)); 分析&#xff1a; a —— 数组首元素的地址 等价于 &a[0] &a —— 数组的首地址 int —— 4字节 *(a 1) a[1] 2&…

美图赏析:拆解USB无线网卡,电路方案非常经典

很多台式机没有无线网卡&#xff0c;只能插网线。想要使用WiFi&#xff0c;插个USB无线网卡就行&#xff0c;简单方便&#xff1a;USB无线网卡非常小巧&#xff0c;以至于会好奇&#xff0c;电路板是怎么塞进去的&#xff1a;下面拆解其中某个厂家的一款&#xff1a;另一个角度…