逻辑常量和逻辑变量

c++中增加了两个逻辑型数据——false(假)、true(真)。

逻辑型变量要用标识符bool来定义,变量被赋值的值只能是false和true之一。
即:bool flag=true;bool found=false;(flag=1;found=0)
逻辑型变量用bool来定义,称为布尔变量,逻辑型常量称为布尔常量。

在编译系统处理数据时,将false处理为0,true处理为1,而不是将两个英文单词存放到内存当中,逻辑型变量在内存中只占用一个字节,用来存放0或1。
例:bool flag=true;
cout<<flag; 输出结果为数值1,而不是flag字符串。

所以,逻辑型数据可用来与数值型数据做算数运算。
例:
int a=0;
a+=flag;
//a+=true;
cout<<a<<endl;
输出数值为1。
在这里插入图片描述
在这里插入图片描述
a+=flag+true;
输出数值为2。
在这里插入图片描述
在这里插入图片描述

设立逻辑类型的目的是为了看程序时更直观易懂,true和false是给人看的而不是机器,机器只能看到0101的二进制数字,归根到底代码是给人看的,越简洁越好。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
//// <<十档逻辑笔>> //// // stc5204-28p; IN=p1.0_adc out= P1.1-P1.7,P2.0-P2.2. /*** 定义头文件 ***/ #include "reg51.h" #include "intrins.h" /*** sfr定义地址不能变 ***/ sfr P1M1 = 0X91; sfr P1M0 = 0X92; sfr P1ASF = 0X9D; //11111111 选P1.0口为ADC功能使能,不位选,只能写, sfr ADC_CONTR = 0XBC; //11111XXX 后三位位P1(0-7)ADC输入信号通道选择, sfr ADC_RES = 0XBD; //为ad转换后结果奇存器SFR地址. /*** 定义常量 #define ***/ #define ADC_POWER 0x80 //CONTR^7 开ADC电源1 #define ADC_FLAG 0x10 //CONTR^6 转换后标志为1 #define ADC_START 0x08 //CONTR^5 开ADC转换=1 #define ADC_SPEED0 0X00 //CONTR^4-3 选转换速度慢00 #define ADC_SPEED1 0X20 //CONTR^4-3 选转换速度中01 #define ADC_SPEED2 0X40 //CONTR^4-3 选转换速度中10 #define ADC_SPEED3 0X60 //CONTR^4-3 选转换速度快11 #define uchar unsigned char;//CONTR^2-0 选ADC输入通道P1.0-7 /*** 定义变量 ***/ uchar dat, key, ch=0XFF/10; //平分10档 /*** 主程序 main ***/ void main(){//P1=P2=0xff; P1M1=P1M0=0x00; 初始化接口// P1ASF=0x01; //选P1.0为ADC使能 ADC_CONTR=0XE8; //开电源1 开转换速度最快11 标志清0 开起动1 端口000(选P1.0) IE=0XA0; //开总中断1, 0, 开ADC中断1, 00000 while(1){ switch(key){ case(1): P1=0XFD; P2=0XFF; break; // case(2): P1=0XFB; P2=0XFF; break; // case(3): P1=0XF7; P2=0XFF; break; // case(4): P1=0XEF; P2=0XFF; break; // case(5): P1=0XDF; P2=0XFF; break; // case(6): P1=0XBF; P2=0XFF; break; // case(7): P1=0X7F; P2=0XFF; break; // case(8): P1=0XFF; P2=0XFE; break; // case(9): P1=0XFF; P2=0XFD; break; // case(10): P1=0XFF; P2=0XFB; break; // default: P1=0XFE;P2=0XFF; break; }} } /***中断响应5********/ void ADC_ISR()interrupt 5 using 1 { dat= ADC_RES; //读AD结果 ADC_CONTR=0xE8; // if( dat<ch*1 )key=1; if(dat>=ch*1 && dat<ch*2 )key=2; if(dat>=ch*2 && dat<ch*3 )key=3; if(dat>=ch*3 && dat<ch*4 )key=4; if(dat>=ch*4 && dat<ch*5 )key=5; if(dat>=ch*5 && dat<ch*6 )key=6; if(dat>=ch*6 && dat<ch*7 )key=7; if(dat>=ch*7 && dat<ch*8 )key=8; if(dat>=ch*8 && dat<ch*9 )key=9; if(dat>=ch*9 )key=10; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值