整型数转换为十六进制数有关问题?
整型数转换为十六进制数问题??
有个整型数10,想把这个10转换为16进制后也为10,即0x10,
11转换为0x11,
我现在一转换就将整数10转换成0x0a了。
我是这样转换的,但不对
tmp3[8]=10%0x100;
该怎么样转换呢??
------解决方案--------------------
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
ok...
------解决方案--------------------
将十进制的最后一位取出,然后转换为16进制的相应值,然后加到前一步的值上面
b记录着当前最后一位对应的权重,
i不断的取最后一位,同时不断的将取走的数通过i/=10语句去掉
------解决方案--------------------
你题目上面没有说要转换为字符串吧,改为下面的:
int i=10, b=0;
char str[255];
str[254] = '\0 ';
while(i){
str[253 - b] = (i % 10) + '0 ';
// h+=(i%10) < <b;
i/=10;
b+=;
// b+=4;
}
------解决方案--------------------
int i=10, b=0;
char str[255];
char finalStr[255];
str[254] = '\0 ';
while(i){
str[253 - b] = (i % 10) + '0 ';
// h+=(i%10) < <b;
i/=10;
b++;
// b+=4;
}
strcpy(finalStr, &str[254 - 2]);
最后finalStr中即是最后的字符串结果
------解决方案--------------------
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
ok...
晕,h是int,转成char不就可以了吗?
------解决方案--------------------
有个整型数10,想把这个10转换为16进制后也为10,即0x10:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=10, x=0;
char tmp[10]={0};
itoa(i, tmp, 10); //转换为字符串, 10进制
x = strtol(tmp, NULL, 16); //再转化为整数, 16进制, 注意参数 ~
printf( "i=%d ==> x=0x%x.\n ", i, x);
system( "PAUSE ");
return 0;
}
------解决方案--------------------
那就还用yingge的做法:
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
然后
char ch = (char)h & 0xff;
有个整型数10,想把这个10转换为16进制后也为10,即0x10,
11转换为0x11,
我现在一转换就将整数10转换成0x0a了。
我是这样转换的,但不对
tmp3[8]=10%0x100;
该怎么样转换呢??
------解决方案--------------------
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
ok...
------解决方案--------------------
将十进制的最后一位取出,然后转换为16进制的相应值,然后加到前一步的值上面
b记录着当前最后一位对应的权重,
i不断的取最后一位,同时不断的将取走的数通过i/=10语句去掉
------解决方案--------------------
你题目上面没有说要转换为字符串吧,改为下面的:
int i=10, b=0;
char str[255];
str[254] = '\0 ';
while(i){
str[253 - b] = (i % 10) + '0 ';
// h+=(i%10) < <b;
i/=10;
b+=;
// b+=4;
}
------解决方案--------------------
int i=10, b=0;
char str[255];
char finalStr[255];
str[254] = '\0 ';
while(i){
str[253 - b] = (i % 10) + '0 ';
// h+=(i%10) < <b;
i/=10;
b++;
// b+=4;
}
strcpy(finalStr, &str[254 - 2]);
最后finalStr中即是最后的字符串结果
------解决方案--------------------
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
ok...
晕,h是int,转成char不就可以了吗?
------解决方案--------------------
有个整型数10,想把这个10转换为16进制后也为10,即0x10:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=10, x=0;
char tmp[10]={0};
itoa(i, tmp, 10); //转换为字符串, 10进制
x = strtol(tmp, NULL, 16); //再转化为整数, 16进制, 注意参数 ~
printf( "i=%d ==> x=0x%x.\n ", i, x);
system( "PAUSE ");
return 0;
}
------解决方案--------------------
那就还用yingge的做法:
int i=10,h=0,b=0;
while(i){
h+=(i%10) < <b;
i/=10;
b+=4;
}
然后
char ch = (char)h & 0xff;