c++基础12比较/逻辑运算符
比较/逻辑运算符
- 布尔
- 比较运算符
- 逻辑运算符
- 位运算符(也用于逻辑运算)
- 1<a<10怎么表达
- T140399
- 判断是否为两位数
- 代码
布尔
在C++中,布尔类型是一种基本数据类型,用于表示逻辑值,即真(true)或假(false)。C++中的布尔类型定义在<stdbool.h>
头文件中(这是C99标准引入的,但在C++中通常使用<cstdbool>
),或者直接使用bool
关键字。
以下是C++中布尔类型相关的一些要点:
-
布尔类型关键字:
bool
。- 这是C++中定义布尔变量的标准方式。
-
布尔字面量:
true
:表示逻辑真。false
:表示逻辑假。
-
布尔类型的大小:
- 在C++中,
bool
类型通常占用1个字节。
- 在C++中,
-
隐式类型转换:
- 在C++中,
bool
类型可以隐式转换为整型。true
转换为1
,false
转换为0
。
- 在C++中,
-
布尔表达式:
- 任何非零值在布尔上下文中都被视为
true
,零值被视为false
。
- 任何非零值在布尔上下文中都被视为
-
boolalpha:
- 在C++中,
boolalpha
是一个I/O操作符,用于控制布尔值的输出格式。当使用boolalpha时,布尔值(bool)将以文本形式("true"或"false")
输出,而不是默认的整数值(1或0)。这个操作符定义在头文件中,通常在使用时,我们包含头文件即可。
- 在C++中,
-
noboolalpha:
- 与boolalpha相对的是
noboolalpha
,它用于取消boolalpha的效果,使得布尔值以整数值
输出。例如:
- 与boolalpha相对的是
下面是一个简单的C++程序示例,展示了布尔类型的使用:
#include <iostream>
using namespace std;
int main() {
bool value = true;
cout << boolalpha << value << endl; // 输出 "true"
cout << noboolalpha << value << endl; // 输出 "1"
return 0;
}
比较运算符
- 比较运算的式子返回布尔值
-
等于 (
==
)- 检查两个值是否相等。
- 例如:
if (a == b)
-
不等于 (
!=
)- 检查两个值是否不相等。
- 例如:
if (a != b)
-
大于 (
>
)- 检查左边的值是否大于右边的值。
- 例如:
if (a > b)
-
小于 (
<
)- 检查左边的值是否小于右边的值。
- 例如:
if (a < b)
-
大于等于 (
>=
)- 检查左边的值是否大于或等于右边的值。
- 例如:
if (a >= b)
-
小于等于 (
<=
)- 检查左边的值是否小于或等于右边的值。
- 例如:
if (a <= b)
逻辑运算符
-
逻辑与 (
&&
)- 如果两个操作数都为真,则结果为真。
- 例如:
if (a > b && c < d)
-
逻辑或 (
||
)- 如果至少有一个操作数为真,则结果为真。
- 例如:
if (a > b || c < d)
-
逻辑非 (
!
)- 反转操作数的逻辑状态,如果操作数为真,则结果为假,反之亦然。
- 例如:
if (!a)
位运算符(也用于逻辑运算)
-
按位与 (
&
)- 对应位都为1时结果才为1。
- 例如:
a & b
-
按位或 (
|
)- 对应位只要有一个为1结果就为1。
- 例如:
a | b
-
按位异或 (
^
)- 对应位相异时结果为1。
- 例如:
a ^ b
-
按位非 (
~
)- 反转所有位,1变成0,0变成1。
- 例如:
~a
-
左移 (
<<
)- 将一个数的位向左移动指定的位数。
- 例如:
a << 2
将a
的位向左移动两位。
-
右移 (
>>
)- 将一个数的位向右移动指定的位数。
- 例如:
a >> 2
将a
的位向右移动两位。
在C++中,表达式1 < a < 10
是一个复合比较运算符,它检查变量a
是否大于1且小于10。这个表达式在逻辑上等同于两个独立的比较运算符组合在一起:
1<a<10怎么表达
1 < a && a < 10
这意味着 a
必须同时满足两个条件:大于1和小于10。如果 a
的值在这个范围内,整个表达式的结果为 true
;否则为 false
。
如果在程序中写成1<a<10,不论a为多少,此表达式总为true。
T140399
判断是否为两位数
- 题目描述
判断一个正整数是否是两位数(即大于等于10且小于等于99)。若该正整数是两位数,输出
true
,否则输出false
。
- 输入格式
一个正整数,不超过1000。
- 输出格式
一行。若该正整数是两位数,输出
true
,否则输出false
。
- 样例输入
54
- 样例输出
true
代码
#include <iostream>
using namespace std;
int main() {
int a ;
cin>>a;
if (9 < a && a < 100) {
cout << "true" << std::endl;
} else {
cout << "false" << std::endl;
}
return 0;
}