确定变量属于有符号数还是无符号数

C语言的学习中,学习到有符号数和无符号数,通过代码确定一个变量是属于有符号数还是无符号数

1、有符号数

  有符号数是对于二进制而言的,最最高的为表示符号位,“0”表示正值,“1”表示负值,剩下的位表示数值。也就是说,有符号数的本质特征是,可以出现负值的情况

2、无符号数

无符号数是相对于有符号数的,数的二进制全部表示数值,没有正负之分。所以,无符号数的本质特征是,绝对不会出现负数的情况。

3、代码判定

a、判定一个数值是否一个无符号

#define ISUNSIGNED(a)     (a>=0 && –a>=0)

    因为无符号数绝对不会出现负值的情况。

b、判定一个类型是否为一个无符号数

#define ISUNSIGNEDTYPE(type)     ((type)0 – 1 > 0)

  无符号数会出现一个循环,就是绝对不会出现负数的情况。

Technorati 标签: ,,,
原文地址:https://www.cnblogs.com/qxj511/p/5191874.html