免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: nxynxy
打印 上一主题 下一主题

[函数] 请问C中有没有函数可以将16进制数转换成10进制数 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-12-08 18:08 |只看该作者

请问C中有没有函数可以将16进制数转换成10进制数

原帖由 "albcamus" 发表:
大家别和我一起出洋相了呵呵,好好琢磨琢磨flw和yuxh的话吧。

所谓10进制、16进制都是你我──人──的视角,计算机中就是0和1。你看下面两个语句
1>;int a = 20;
2>;int a = 0x14;
在计算机看来,他们是�.........

没用的,呵呵。flw将继续晕下去,我们将继续看下去。

论坛徽章:
0
12 [报告]
发表于 2004-12-08 18:14 |只看该作者

请问C中有没有函数可以将16进制数转换成10进制数

晕。。。晕死了

论坛徽章:
0
13 [报告]
发表于 2004-12-08 18:46 |只看该作者

请问C中有没有函数可以将16进制数转换成10进制数

自己写吧

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2004-12-09 12:07 |只看该作者

请问C中有没有函数可以将16进制数转换成10进制数

原帖由 "your1982" 发表:
DtoF(int a)
{
int a,b,c;
do
{
c=a/16;
b=amod16;
printf("%d",b);
a=c;
}
while(a==0);
return(b);
}

晕~~~
居然有有人能写出这样的程序~
输入一个整型,然后又输出一个整型,
然后就说是自己把 10 进制转换成 16 进制了?
你凭什么说人家输入的整型就是 10 进制而你输出的就是 16 进制?
居然还做了转换,我再晕~~~
sarahbrightman 该用户已被删除
15 [报告]
发表于 2004-12-09 12:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
16 [报告]
发表于 2004-12-09 12:34 |只看该作者

请问C中有没有函数可以将16进制数转换成10进制数

哈哈,好玩~
在计算机中全是二进制数,不存在10进制还是16进制。如果是人机接口则需要作转化,如:
scanf("%d", &n);中输入的是十进制字符流,函数中会转化为二进制数
printf("%x", n);中要输出十六进制字符流,则在函数中会将二进制数转化为十六进制字符流

论坛徽章:
0
17 [报告]
发表于 2015-04-18 10:24 |只看该作者


(1)使用:
ULONG lValue;//4 BYTE
sscanf(strHex,"%X",&lValue);

(2)使用: strtol或strtoul
UINT HexToDec(CString strBin)
{
//  assert(strHex.GetLength<=;
char *stopstring;
const char *cBin = (LPSTR)(LPCTSTR)strBin;
UINT iValue;
iValue =strtol(cBin, &stopstring, 16);
return iValue;
}

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:57:09
18 [报告]
发表于 2015-04-18 14:52 |只看该作者
snprintf(3)
其实数据类型本身是不区分进制的,所有的数据在计算机中都是二进制的,所谓的十进制和十六进制都是数据的一种表现形式,都是用来给人看的。所以你所谓的十进制和十六进制形式一定都是以字符串的形式存在的,那么用 snprintf(3) 函数族的函数就可以了。如果你用 atoi(3) 之类的函数把字符串转回数字,那么就又变成不区分数据类型的数据了。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
19 [报告]
发表于 2015-04-20 10:23 |只看该作者
本帖最后由 yulihua49 于 2015-04-20 10:33 编辑
nxynxy 发表于 2004-12-01 17:33
请问C中有没有函数可以将16进制数转换成10进制数

9楼正解。
不过楼主是否想在文本中表达或收取16进制数?
收取:
int i;
scanf("%X",&i);

表达:
printf("i=%X\n",i);
那么,转换呢?就是在字符串意义上的转换:
10 -> 16:
scanf("%d",&i);
printf("%X\n",i);
相反:
scanf("%X",&i);
printf("%d\n",i);

实在的说,楼主对计算机的数据类型完全没概念。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP