社区
C语言
帖子详情
一个字符串10进制转16进制的问题
zsllrtx
2007-09-10 03:23:18
各位大虾:
比如一个字符串: "999999999999",共12位, 把这个字符串转成16进制的, 存放在一个unsigned char array[5]中. 怎么做? 能否给个程序
如果没有看懂, 就用windows的计算器输入一个十进制的 9999999999...
12位,再点击16进制,就可以看到E8D4A50FFF, 因此把这个E8D4A50FFF,2位一个字节存入 array中.
...全文
271
9
打赏
收藏
一个字符串10进制转16进制的问题
各位大虾: 比如一个字符串: "999999999999",共12位, 把这个字符串转成16进制的, 存放在一个unsigned char array[5]中. 怎么做? 能否给个程序 如果没有看懂, 就用windows的计算器输入一个十进制的 9999999999... 12位,再点击16进制,就可以看到E8D4A50FFF, 因此把这个E8D4A50FFF,2位一个字节存入 array中.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
_石头_
2007-09-11
打赏
举报
回复
不好意思,越推越麻烦了,原本打算用字符数组整形移位的方式来做的,才推到5位就有点不好办了!等那天有空再好好考虑一下算法!
_石头_
2007-09-10
打赏
举报
回复
呵呵!感觉不是很难,待会晚上我试试看,能不能写个任意长度的转换代码!虽然感觉没问题,不过也不保证能成功啊!-----^_^
zsllrtx
2007-09-10
打赏
举报
回复
楼上的是正确的.
可是,如果当前的编译器 只有int,long, char 及 无符号的该三类数据类型, 这个该咋整. 麻烦了
Treazy
2007-09-10
打赏
举报
回复
给你一段代码参考一下吧!
#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]);
}
}
Treazy
2007-09-10
打赏
举报
回复
to dfczj()
你的代码根本是错的,
---------------------------
zsllrtx
2007-09-10
打赏
举报
回复
999999999999,12个9, 不是long型能够表示的了呢.
而且,不用double型将 一个12位的数字,转换成十六进制,
用计算器看看呀...
dfczj
2007-09-10
打赏
举报
回复
#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;
}
IfI
2007-09-10
打赏
举报
回复
进制转换:
char str[100];
string str1(itoa(current_instant_number, str, 2));
把最后一个参数2改成16
至于将一个字符串转换为数字,这样办:
char c[]="999999999\0";
char *EndPtr;
int i;
i=strtol(c,&EndPtr,16);
printf("十六进制数:0x%s,被转化为十进制数:%d,验证数:%d",c,i,0xabe5);
自己加上适当的字符串类型转换处理
IfI
2007-09-10
打赏
举报
回复
要点1:
进制转换:
char str[100];
string str1(itoa(current_instant_number, str, 2));
要点2:
两位数一存一个字符里:
str[0]<<4 + str[1] = array[0]
搞定
给分
16进制
字符串
转
为
16进制
数字
自己写的
16进制
字符
转
转
为
16进制
数字,函数已经封装好String2Hex(CString str, CByteArray &hexdata),欢迎大家使用
c语言
字符串
转
16进制
及
16进制
转
字符串
一:
字符串
转
16进制
sprintf((char*)(hex + j), “%02X”, bin[i]);即将
一个
字符按照%02X格式即
16进制
输出 void bin2hex(unsigned char *bin,char *hex,int binlength) { int i = 0; int j = 0; for (i = 0,j = 0
字符串
转
16进制
与
16进制
转
字符串
字符串
转
16进制
与
16进制
转
字符串
c#
16进制
转
10进制
CPU卡、M1、ID卡,在一卡通平台通常做法是使用扇区的前4字节的
10进制
做为卡号,但实际扇区存储的都是
16进制
字符串
。所以项目中就有对
10进制
和
16进制
转
换的要求。 推荐工具:在线进制
转
换...
字符串
和
16进制
之间的
转
换
在串口传递数据的时候数据格式是
16进制
的,但是存下来的数据为了方便查看,用
字符串
存储下来了。例如串口传递的数据是0xAA 0xBB 0xCC,存储下来的文件为AABBCC,这样存储带来的
问题
就是无法直接通过串口再发送出去,...
C语言
69,369
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章