首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么用 Macro判断值为10进位,16进位,8进位

2013-10-29 
如何用 Macro判断值为10进位,16进位,8进位牛人们好,   我在学 C++ 书中有个练习题是说用 Macro写一个可以

如何用 Macro判断值为10进位,16进位,8进位
牛人们好,
   我在学 C++ 书中有个练习题是说用 Macro写一个可以判断八进位、十进位、十六进位(hex)的代码
想请教一下怎麽做…因为我实在没有一点头绪…

#define is_digit(x) ..... 
#define is_hex(x) ....
#define is_oct(x) ...


请大家给我一些提示 Orz c++ Macro
[解决办法]
什么样的书这么.....

x是什么类型?
x如果是数值,在计算机内部都是16进制数

如果是字串,则只能部分判断出是16进制,如果有编码大于'9'
有编码'8','9'则可能是10进制,也可能是16进制
所以编码都小于‘8’,则8\10\16进制数都有可能



[解决办法]
C,C++ 的标准库
C,C++: ctype.h 
C++:   cctype 

有判断是否10进制数字和十六进制数字的函数,
isdigit,isxdigit
可能就是用宏实现的。
这个头文件,是可以直接看到的。
自己写 
       '0'..'7', 是 8进制数字
       '0'..'9',  是 10 进制数字
       '0'..'9''a'..'f''A'..'F' 十六进制数字,其中 'a'..'f','A'..'F'分别是小写和大写。
    

热点排行