用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)的算法.
#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 "";
}