51单片机bit数据类型
来源:互联网 发布:黎明杀机淘宝刷血点 编辑:程序博客网 时间:2024/05/22 15:40
bit是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。事实上,bit和数据类型为int,char等具有许多相同特性。
1. 值域:
以char为例。Char为8位一个字节的数据类型,取值范围为 -128到+127。而bit只有1位,只能表示0和1两种值。通常bit定义的变量作为一个标志位用。
2.类型定义:
例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样一个在自己值域的数0和1就可以定义为bit型。Bit可以指定函数返回值的类型, 如bit display(),也可对别的类型的数据进行数据强制转换,如x=(bit)y, (y为char,int型等)。此时,x的值便为0或1。那么如何确定x是0还是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的用法和char、int等相同。那么resulit的值如何确定呢? 这个和运算表达式 P0&0x80有关。如果表达式 P0&0x80的运算结果为非零的值,那么resulit的值为1,否则为0。
1. 值域:
以char为例。Char为8位一个字节的数据类型,取值范围为 -128到+127。而bit只有1位,只能表示0和1两种值。通常bit定义的变量作为一个标志位用。
2.类型定义:
例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样一个在自己值域的数0和1就可以定义为bit型。Bit可以指定函数返回值的类型, 如bit display(),也可对别的类型的数据进行数据强制转换,如x=(bit)y, (y为char,int型等)。此时,x的值便为0或1。那么如何确定x是0还是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的用法和char、int等相同。那么resulit的值如何确定呢? 这个和运算表达式 P0&0x80有关。如果表达式 P0&0x80的运算结果为非零的值,那么resulit的值为1,否则为0。
0 0
- 51单片机bit数据类型
- 单片机中几种常用数据类型 bit,sbit,sfr,sfr16。
- 51单片机sfr sbit bit学习
- C语言之51单片机中的数据类型
- 51单片机的基本数据类型简介
- 51单片机应用数据类型的注意
- 51单片机bit、sbin、sfr、sfr_16区别分析
- 51单片机 bit定义标志位无效原因
- mysql 中的bit数据类型
- 单片机 数据类型 长度
- 杂记之51单片机哪些破事---数据类型(一)
- 面向51单片机的Keil uVision4基本数据类型简介
- 面向51单片机的Keil uVision4基本数据类型简介
- 面向51单片机的Keil uVision4基本数据类型简介
- Java bit / byte 基本数据类型
- SQL Server中bit数据类型
- 单片机C51中bit强制类型转换
- 写单片机程序数据类型相关
- 大三上信息论与编码实验——汉明码的编码过程的c++实现
- eclipse 下maven 创建工程 catalog的问题
- CentOS下安装svn,添加新用户,重启svn服务(找到安装成功的案例)
- Session 4: Deploying a Virtual Machine from Horizon
- 【Android】Android6.0及以上不能读取外部存储问题
- 51单片机bit数据类型
- c语言实现输出二维蛇形矩阵
- Session 5: Managing OpenStack from the Command Line
- 【miscellaneous】MPEG2、MPEG4、H264的差异
- FPGA的IP软核、硬核以及固核
- Hadoop 解除 "Name node is in safe mode"
- 矩阵的理解
- 微信登录、分享到微信
- Session 6: Scaling Out Your OpenStack