用java语言写一个方法"String hexToStr(int input)",所得到的结果如下所示:
如: 输入/输出
input=1 output=1
input=10 output=a
input=100 output=64
input=333 output=14d
要求:不能直接调用Integer.toHexString(xxx)本题主要就是要写出 Integer.toHexString(xxx)的算法.
如: 输入/输出
input=1 output=1
input=10 output=a
input=100 output=64
input=333 output=14d
要求:不能直接调用Integer.toHexString(xxx)本题主要就是要写出 Integer.toHexString(xxx)的算法.
解决方案 »
- 多线程实现tcp多客户聊天程序
- 为什么我正常运行代码跟我打断点以后运行的代码 结果不一样呢? (多线程ReentrantLock问题)
- 求数字字符串的整数值
- 请教各位前辈,在什么情况下你会自然地使用JAVA的多态
- 关于Collections.shuffle()方法
- 找“Java Servlet编程(第二版)” 这本书那里有下
- 一个错误不知道怎么解决
- 为什么菜单不能显示,多谢
- 一个类实现两个接口,其中两个接口中有两个同样的方法,这样最后被实现的是哪个方法?
- VAJ中父类JApplet为缺失是不是因为没有swing包?那swing包又怎么加载呢?
- int数组有{1,2,1,3,3,2},如果数组里的值重复,返回true(急求)
- Hibernate 日期插入问题
#include<stdio.h>
char* toString(int b[],int k)
{
char a[k];
char s[]="0123456789ABCDEF";
int i;
for(i=0;i<k;i++)
a[i]=s[b[k-i-1]];
return a;
}
char* changeIntToHex(int n){
int b[1000];
int k=0;
while(n!=0){
b[k]=n%16;
n/=16;
k++;
}
return toString(b,k);
}int main(){
int n;
scanf("%d",&n);
printf("%s",changeIntToHex(n));
return 0;
}
String s = "0123456789abcdef";
StringBuffer sb = new StringBuffer();
for (int j = 0; i >= 16; j++) {
int a = i % 16;
i /= 16;
sb.append(s.charAt(a));
}
sb.append(s.charAt(i));
return sb.reverse().toString();
}
public static String hex2Str(int iVal) {
StringBuffer sb = new StringBuffer(8);
boolean started = false;
for (int i = 24; i >= 0; i -= 8) {
byte b = (byte)(iVal >> i);
int val = b >> 4;
if (val > 0 || started) {
started = true;
sb.append(hexes[b >> 4]);
}
val = b & 15;
if (val > 0 || started) {
started = true;
sb.append(hexes[b & 15]);
}
}
return sb.toString();
}
String s = "0123456789abcdef";
if(v<=16) return String.valueOf(s.charAt(v));
if(v>16){
int a = v % 16;
int b = v / 16;
return HexToStr2(b)+HexToStr2(a);
}
return "";
}