分享

bit

 LOVE-smile 2012-03-28

 面由我来谈谈bit的用法,由于水平限制,如有不对的地方,还希望各位友友指出。

bitC51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的TrueFalse。事实上,bit和数据类型为int,char等具有许多相同特性。

1. 值域:

char为例。Char8位一个字节的数据类型,取值范围为 -128+127。而bit只有1位,只能表示01两种值。通常bit定义的变量作为一个标志位用。

2.类型定义:

例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样一个在自己值域的数01就可以定义为bit型。Bit可以指定函数返回值的类型, 如bit display(),也可对别的类型的数据进行数据强制转换,如x=(bit)y, (ychar,int型等)。此时,x的值便为01。那么如何确定x0还是1呢? 现在看下面例题:

bit lcd_busy()



bit result;

LCD_RS = 0;

LCD_RW = 1;

LCD_EN = 1;

delayNOP();

result = (bit)(P0&0x80);

LCD_EN = 0;

return(result); 

}

在上面例题中我们可以看到,bit定义了一个函数返回值类型 bit lcd_busy(),一个变量 result 和 一个运算表达式 P0&0x80 .由此可以bit的用法和charint等相同。那么resulit的值如何确定呢? 这个和运算表达式 P0&0x80有关。如果表达式 P0&0x80的运算结果为非零的值,那么resulit的值为1,否则为0

总结:由上面等内容可以看出,我们完全可以像charint那样使用bit。只是在使用过程要注意bit的取值范围以及bit对运算表达式进行数据强制转换时的规则和bit定义的变量作为标志位的特性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多