| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13825 人关注过本帖
标题:我想直接输入16进制数该怎么做?
只看楼主 加入收藏
Luminal
Rank: 6Rank: 6
等 级:侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
收藏
得分:5 
关于进制的问题,只要知道进制是怎么回事,剩下的事就是,如果有现成的函数,----拿来用啊!
没有 ----------自己写一个
这样就简单了!
在C语言中,输出: 十进制    %d
              十六进制    %x
               八 进制    %o
二进制没有给出相应的方法,所以如果需要输出2进制就得自己写函数实现(包括楼上说的什么5,26,...);
仓促之间写了一个例程,代码很烂,逻辑不严谨仅供参考:
只是说明一下问题,这个函数远没有达到应用的成度,是个通用型的,可以计算2,8,10进制的,甚至其他进制,比如12,24,60
等等有意义的进制转换
程序写的比较烂,毕竟这种转换用处不大,仅说明进制转换的问题,
程序代码:
#include <stdio.h>
int dectobinary(int num,int *ary,int system); 
int main(){
    int ary[16]={0};
    int len=0;
    len=dectobinary(23,ary,16);
    for(len;len>-1;len--) 
    printf("%d",ary[len]);
    printf("\n");
    return 0;
} 
//返回值是这个被转换后的数的位数;
//num 是要转换的10进制整数(没有考虑负数的情况)
//*ary是用来接受转换后的数的,是个int型数组,当然也可以用char型;
//system 是要转换的进制,2进制就是2,16进制就是16....
//返回值是转换后一共是多少位数-1,比如十进制3转换成2进制为111,是3位数,则返回3-1=2; 
//所生成的数是反序的,输出时要反序输出的!
int dectobinary(int num,int *ary,int system){
    int len=0;
    int tempr=0;
    
    tempr=num%system;
    num=num/system;
    *(ary++)=tempr;
    len++;
    while(num>1){
        
        tempr=num%system;
        num=num/system;
        *(ary++)=tempr;
        len++;
    } 
    *(ary++)=num;
    return len;     
}


[ 本帖最后由 Luminal 于 2011-8-25 18:34 编辑 ]
2011-08-25 17:33
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
貌似新来了一位大牛

                                         
===========深入<----------------->浅出============
2011-08-25 18:53
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 11楼 Luminal
有的有的,有现成的~ atoi() 撒~
2011-08-25 18:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
atoi()只转10进制数的,strtod()才可转不同进制的数。后者能转2、8、16进制的数,但能不能转任意进制,还没测试过。

授人以渔,不授人以鱼。
2011-08-25 22:55
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
啊,对,疏忽了
2011-08-25 23:15
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:0 
感谢所有回帖的人。





-------------------------------------
PS:因为刚好是回校时间,所以结贴比较迟了。

一个单片机就让我头疼不已~~~
2011-08-27 17:05
快速回复:我想直接输入16进制数该怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031055 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved