今天晚上做了一道java基础题,题目看起来简单,但是实现起来却花了我近两个小时的时间,认真的做这道题,你会发现它特别考你的基本功。有兴趣的可以试一下哦。

题目: 请用此语言编写如下函数,采用自己的算法,不要使用 printf, sprintf,Format, toString, itoa,toHex等函数。

函数名称 TQ_GetHexStringEx

参数

整数 iNumber

整数 iCount

返回值

字符串类型

函数描述

获得表示iNumber十六进制字符串,宽度不足iCount时,前面补0。

举例

TQ_GetHexStringEx(12,2);   返回 “0C”

TQ_GetHexStringEx(12,8);   返回 “000000C

下面是两种实现方式,不过第二种用到了toString方法。大家有好的算法,欢迎拍砖。

实现一:

package test;

import java.io.*;

public class ToHexTest {
 
 public String s="";
 
 public static void main(String arg[]) {
  ToHexTest a = new ToHexTest();
  System.out.print(a.TQ_GetHexStringEx(12,8));
 }
 
 public String TQ_GetHexStringEx(int iNumber,int iCount){
  HexString(iNumber);
  int length=s.length();
  for(int i=0;i<iCount-length;i++)
  {
   s="0"+s;
  }
  return s;
 }

//编写数的十六进制
 public void HexString(int x) {
  if (x > 0)
   HexString(x / 16);
  else
   return;
  if (x % 16 == 10) {
   s=s+"A";
  } else if (x % 16 == 11) {
   s=s+"B";
  } else if (x % 16 == 12) {
   s=s+"C";
  } else if (x % 16 == 13) {
   s=s+"D";
  } else if (x % 16 == 14) {
   s=s+"E";
  } else if (x % 16 == 15) {
   s=s+"F";
  } else
  s=s+x % 16;
 }
}

实现二:

package test;

import java.io.*;

public class ToHex {
 public static void main(String arg[]) {
  ToHex a = new ToHex();
  System.out.print(a.TQ_GetHexStringEx(12, 8));
 }
 
 public String TQ_GetHexStringEx(int iNumber,int iCount){
  StringBuffer sb=new StringBuffer();
  StringBuffer sb1=new StringBuffer();
  HexString(iNumber,sb);
  for(int i=0;i<iCount-sb.length();i++)
  {
   sb1.append("0");
  }
  return sb1.append(sb).toString();
 }

//编写数的十六进制
 public void HexString(int x,StringBuffer sb) {
  if (x > 0)
   HexString(x / 16,sb);
  else
   return;
  if (x % 16 == 10) {
   sb.append("A");
  } else if (x % 16 == 11) {
   sb.append("B");
  } else if (x % 16 == 12) {
   sb.append("C");
  } else if (x % 16 == 13) {
   sb.append("D");
  } else if (x % 16 == 14) {
   sb.append("E");
  } else if (x % 16 == 15) {
   sb.append("F");
  } else
   sb.append(x % 16);
 }

}

java 十六进制数的转换相关推荐

  1. VB与Java颜色值的转换

    正常的 RGB 颜色的有效范围,是从 0 到 16,777,215 (&HFFFFFF&).每种颜色的设置值(属性或参数)都是一个四字节的整数.对于这个 范围内的数,其高字节都是 0, ...

  2. java线程切换 notify_浅谈 Java线程状态转换及控制

    作者:城北有个混子 出自:博客园 1.线程的状态(系统层面) 一个线程被创建后就进入了线程的生命周期.在线程的生命周期中,共包括新建(New).就绪(Runnable).运行(Running).阻塞( ...

  3. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  4. java 擦出,Java擦除和转换实例分析

    本文实例讲述了Java擦除和转换.分享给大家供大家参考,具体如下: 一 点睛 在严格的泛型代码里,带泛型声明的类总应该带着类型参数.但为了与老的Java代码保持一致,也允许在使用带泛型声明的类时不指定 ...

  5. Java父类强制转换子类原则

    转载自 Java父类强制转换子类原则 最近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了. 我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗? ...

  6. java.util.Date转换成java.sql.Date

    // 获取当前的系统时间,以java.util.Date对象返回 Date dateUtil = new Date(); // 获取当前的系统时间,以时间戳返回 long l = System.cur ...

  7. json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  8. 【图解】透彻Java线程状态转换

    大家好,我是阿星,好久不见,欢迎来到Java并发编程系列番外篇线程状态转换,内容通俗易懂,请放心食用. 线程状态 先来个开场四连问 Java线程状态有几个? Java线程状态是如何转换? Java线程 ...

  9. Java日期格式转换

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /**    * 获取现在时间    ...

最新文章

  1. OpenCV2.3的cvCalcHist函数有问题?255级值总为0,索性自己写一个直方图计算函数,附源码
  2. Hadoop streaming: Exception in thread main java.io.IOException: No space left on device
  3. 对话腾讯云汽车业务副总经理李博:构建出行大版图,腾讯云迈向新征程
  4. Electrification
  5. LeetCode 1961. 检查字符串是否为数组前缀
  6. 基于Alluxio系统的Spark DataFrame高效存储管理技术
  7. JSP的9个内置对象-request
  8. 降低成本是永恒的追求(xamarin)
  9. Ubuntu 禁用 触摸板
  10. 服务器LCD显示面板,DELL服务器2950的错误代码表(前LCD面板)
  11. ECSHOP商城网站建设之自定义调用广告方法(二)
  12. codevs 2651 孔子教学——同桌
  13. 三维设计和动画:Cinema 4D R25 for mac(c4d r25)
  14. W/ActivityManager( 1419): Activity is launching as a new task, so cancelling activity result.
  15. 手机远程服务器总说磁盘空间不足,查询远程服务器上磁盘空间的最佳方式
  16. Axure RP从入门到精通(二十)鼠标指针函数
  17. 常用电子元器件基础知识总结
  18. 不明白如何将批量图片格式转换?2招教你们快速搞定
  19. 昆仑通态和S7 1200在线模拟仿真通讯
  20. 回传速率和测量带宽及两者之间的联系

热门文章

  1. Spring(三)Bean继续入门
  2. Scala学习小小总结
  3. 简述L4无人驾驶的发展
  4. 服务号php代码示例,php实现银联商务公众号+服务窗支付的示例代码
  5. installshield mysql_installshield安装文件的制作小技巧
  6. 爬去图片插件_学不会你打我,一个插件爬取亚马逊数据!
  7. android 导航自动切换,Android导航抽屉切换图标向右
  8. python pandas读取文件内容_python pandas读取大型文件
  9. apache 网站转nginx_堡塔网站加速宝塔面板网站加速安装设置使用教程
  10. 述职答辩提问环节一般可以问些什么_陕西省高级职称评审,90%的人都“死”在答辩上?...