读书人

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

发布时间: 2013-10-29 12:07:57 作者: rapoo

如何用 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'分别是小写和大写。

读书人网 >C++

热点推荐