一个字符串10进制转16进制的问题
各位大虾:
比如一个字符串: "999999999999 ",共12位, 把这个字符串转成16进制的, 存放在一个unsigned char array[5]中. 怎么做? 能否给个程序
如果没有看懂, 就用windows的计算器输入一个十进制的 9999999999...
12位,再点击16进制,就可以看到E8D4A50FFF, 因此把这个E8D4A50FFF,2位一个字节存入 array中.
[解决办法]
要点1:
进制转换:
char str[100];
string str1(itoa(current_instant_number, str, 2));
要点2:
两位数一存一个字符里:
str[0] < <4 + str[1] = array[0]
搞定
给分
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main(){
char *a= "999999999999 ";
char b[5];
long c=atol(a);
sprintf(b, "%x ",c);
printf( "%s\n ",b);
return 0;
}
[解决办法]
给你一段代码参考一下吧!
#define FUN(x,y) (((__int64)y & ((__int64)0xFF < < (8*(x)))) > > (8*(x)))
main()
{
__int64 a =999999999999;
int Ch[5],i;
for(i = 0; i < 5; i++)
{
Ch[i] =(int)(FUN(i, a));
}
for(i = 4; i > = 0; i--)
{
printf( "%0.2x ", Ch[i]);
}
}