社区
C语言
帖子详情
字符数组中存十六进制数如何转成十进制数?
ltolll
2007-07-26 05:57:52
byte ch[40]={0X01,0X2F,0XAB,0X23}
这个十六进制数连在一起就是:012FAB23,想要将其转成十进制的数(20070330)存在数值或字符串变量里都可以.
最好是有现在的函数可用.
...全文
868
11
打赏
收藏
字符数组中存十六进制数如何转成十进制数?
byte ch[40]={0X01,0X2F,0XAB,0X23} 这个十六进制数连在一起就是:012FAB23,想要将其转成十进制的数(20070330)存在数值或字符串变量里都可以. 最好是有现在的函数可用.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangjgbupt
2007-07-30
打赏
举报
回复
不可以,我都试过了,不知道这个是什么意思
xiuhai
2007-07-28
打赏
举报
回复
可以吧!
zhangjgbupt
2007-07-28
打赏
举报
回复
count += sprintf(tmp+count, "%x", ch[i]&0xff);
ch[i]&0xff这句起什么左右,直接可以用ch[i]吗??
ltolll
2007-07-27
打赏
举报
回复
0x012fab23的十进制不是19901219吗?
-------------------------------------
是的,对不起,我搞错了
请问jxlczjp77()
char* pa=(char*)&a;//这句我还看得懂
pa[0]=ch[3];//这4句为什么字节是倒过来存的呢?
pa[1]=ch[2];
pa[2]=ch[1];
pa[3]=ch[0];
为什么这么写,是不是与内存存储结构有关,能否解释一下?
ammana_babi
2007-07-27
打赏
举报
回复
zzyjsjcom()
与内存存储结构 没有关系
我觉得这样写代码是不安全的,有的CPU或者IC是不仅仅支持一种从高到低的存储器访问和存储模式的。这样做是不是要冒点风险?
zzyjsjcom
2007-07-27
打赏
举报
回复
与内存存储结构 没有关系
zzyjsjcom
2007-07-27
打赏
举报
回复
1. (char*)&a 取a的地址并转化为char *类型;
这样 pa就指向了a的最低位的一个字节,ch[3]是最低位的字节,当然要把它赋给pa[0]
2. pa[0] 就是*pa
而,pa[1],pa[2],pa[3]分别是:*(pa+1),*(pa+2),*(pa+3)
jixingzhong
2007-07-26
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch[40]={0X01,0X2F,0XAB,0X23}, tmp[40];
long num=0;
int i=0, count=0;
while(ch[i])
{
count += sprintf(tmp+count, "%x", ch[i]&0xff);
i++;
}
puts(tmp);
num = strtol(tmp, NULL, 16); //现成函数只有这个比较接近你的要求
printf("num = %ld\n", num);
system("PAUSE");
return 0;
}
但是需要构造一个字符串,
就是 "012FAB23",
这里使用 count += sprintf(tmp+count, "%x", ch[i]&0xff); 循环构造字符串。
jixingzhong
2007-07-26
打赏
举报
回复
char ch[40]="012FAB23";
long num=0;
num = strtol(ch, NULL, 16);
printf("num = %ld\n", num);
jxlczjp77
2007-07-26
打赏
举报
回复
0x012fab23的十进制不是19901219吗?
byte ch[40]={0X01,0X2F,0XAB,0X23}
int a;
char* pa=(char*)&a;
pa[0]=ch[3];
pa[1]=ch[2];
pa[2]=ch[1];
pa[3]=ch[0];
cout<<a<<endl;
halve
2007-07-26
打赏
举报
回复
sprintf()
(c语言)写一个函
数
,输入一个
十六进制
数
,输出相应的
十进制
数
正在学C语言,教材是谭浩强教授的《c程序设计》第五版,本题是上次课后作业(p216 7-16题),一开始感觉无从下手,认真思考和复习各进制的转换知识后终于做出了这道题,和网上的一些答案还是有差别&差距的,仅供参考~/*解题思路:声明字符串
数
组arr储存输入的
十六进制
数
并将其作为子函
数
实参,在子函
数
中使用循环将 arr各位转换为对应的
十进制
数
并使用一个整型
数
组存储,然后各位求乘积再求和得...
写一个函
数
,输入一个
十六进制
数
,输出相应的
十进制
数
——C语言
1 概述 写一个函
数
,输入一个
十六进制
数
,输出相应的
十进制
数
2 解法 //C程序设计第五版(谭浩强) //章节:第七章 用函
数
实现模块化程序设计 //练习7.16 写一个函
数
,输入一个
十六进制
数
,输出相应的
十进制
数
#include <stdio.h> #include <math.h> #include <string.h> int main( ) { ...
C++实现
十进制
数
向
十六进制
数
转化
标题 给定一个
十进制
正整
数
N,请将其转换为
十六进制
并输出。 #include<iostream> using namespace std; char exchange(int n) { switch(n) { case 0: return '0';break; case 1: return '1';break; case 2: return '2';break; case 3: re
输入一个
十六进制
数
,输出相应的
十进制
数
#include <stdio.h>#include <stdlib.h>#include <string.h>#define max 10/* 写出一个函
数
、输入一个
十六进制
数
,输出相应的
十进制
数
*/int main(int argc, char *argv[]) { int intergrity(char s[]); printf("input:\n"); ...
自定义
十六进制
数
及
十六进制
数
和
十进制
数
的相互转换
本人正在学习C++,偶尔遇到了进制转换的问题,于是编写了如下
十六进制
数
和
十进制
数
相互转换的代码,代码如下(只用到了C++中的vector): #include<iostream> #include<vector> #include<cmath> using namespace std; //
十六进制
数
转化为
十进制
数
int Sixteen_to_Ten(char *ch)//用
字符
数
组
存储
十六进制
数
的每一位 { //自定义
十六进制
数
int cnt
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章