今天晚上做了一道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. Java中byte转换int时与0xff进行与运算的原因

    http://w.baike.com/LGAdcWgJBBQxRAHUf.html 转帖 java中byte转换int时为何与0xff进行与运算 在剖析该问题前请看如下代码 public static ...

  2. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  3. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  4. 实现十进制无符号整数m到十六进制数的转换功能

    /*利用顺序栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能.*//******************************** ...

  5. Java文件编码格式转换

    转自博文<Java文件编码格式转换>: 默认被转换的格式为GBK,转换成的格式为UTF-8 import info.monitorenter.cpdetector.CharsetPrint ...

  6. java 实现视频转换通用工具类:视频截图-Ffmpeg(四)

    java 实现视频转换通用工具类:获取视频元数据信息(一) java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二) java 实现视频转换通用工具类:视频相互转换-Ffmpeg ...

  7. java 实现视频转换通用工具类:视频相互转换-Ffmpeg(三)

    java 实现视频转换通用工具类:获取视频元数据信息(一) java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二) 这节主要是ffmpeg的相关方法封装,在实际调用中主要使用f ...

  8. java 实现视频转换通用工具类:视频相互转换-总方法及Mencoder(二)

    1.自动判断格式并调用相应的转换工具,默认方法 /** * 自动判断格式并调用相应的转换工具,默认方法 * @param srcVideoPath * @param tarVideoPath * @r ...

  9. java 实现视频转换通用工具类:获取视频元数据信息(一)

    java 做视频转换主要用到开源的ffmpeg或者mencoder,还要有MP4Box. 注:由于平时都没有时间写博客,所以思路我就不写了,有问题问我,不一定马上回复. 详细介绍: ffmpeg:ht ...

随机推荐

  1. Sencha touch navigation 内嵌list,itemTap第二次点击不跳转的问题

    情景:navigation view 内嵌list,第一次触发list事件itemtap,正常跳转至详情页,点击"defaultBackButton"返回至list正常;再次点击触 ...

  2. Web打印控件smsx.cab使用说明

    在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab.    使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局 ...

  3. Excel 内容粘贴到DataGridView, DataGridView 粘贴到 Excel

    void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Ke ...

  4. hdu 2844 Coins

    Coins Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted S ...

  5. 【转】C,C++中使用可变参数

    可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是 int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处 ...

  6. Spring中的事务管理

    事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当作一个单独的工作单元.这些动作要么全部完成,要么全部不起作用 事务的四个关键属性( ...

  7. 20个非常绚丽的 CSS3 特性应用演示

    这篇文章收集了20个非常绚丽的 CSS3 效果应用演示,这些示例演示了 CSS3 各种新特性的强大能力.随着越来越多的浏览器对 CSS3 支持的不断完善,设计师和开发者们有了更多的选择,以前需要使用  ...

  8. 【Python】Python-用大写字母打印你的名字

    与孩子一起编程,有个作业题:用大写字母打印你的名字. CCCC A RRRRR C C A A R R C A A R R C AAAAAAA RRRRR C C A A R R CCCC A A R ...

  9. ASP.NET Web API 如何通过程序控制返回xml还是json

    雖然 ASP.NET Web API 內建支援 JSON 與 XML 兩種輸出格式,並依據瀏覽器端送出的 Accept 標頭自動決定回應的內容格式,不過有時候我們的確也需要讓程式來控制要回應哪種格式, ...

  10. duilib中ListCtrl控件的实现

    转载请说明出处,谢谢~~ 昨天在编程群里聊天,提到了ListCtrl,然后有网友找我,他需要做一个ListCtrl控件,我看过需求后接下了这个活.今天就把大致的思路和过程记录一下.首先看<任务书 ...