Логические типы и логические операции
Логические переменные (bool) могут принимать одно из двух значений: истина (true) или ложь (false). Логические переменные используются для выражения результатов логических операций:
bool b1=a==b; // = – означает присваивание, == – проверка на равенство
Если a и b имеют одинаковые значения, то b1 будет равно true, в противном случае – false.
По определению, true имеет значение 1 при преобразовании к целому типу, а false – 0. И наоборот, целые можно неявно преобразовывать в логические значения: при этом ненулевые целые преобразуются в true, а ноль – в false.
В арифметических и логических выражениях логические значения преобразуются в целые (int); арифметические и битовые логические операции выполняются над преобразованными величинами. Если результат приводится обратно к логическому типу, то 0 преобразуется в false, а ненулевое значение – в true.
bool a=true;
bool b=true;
bool x=a+b; //a+b=2, поэтому x равен true
bool y=a/b; //a/b=1, поэтому y равен true
В С++ существует три логические операции:
1) Логическая операция И "&&";
2) Логическая операция ИЛИ "||";
3) Логическая операция НЕ "!" или логическое отрицание.
Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз. В следующей таблице кратко охарактеризованы все логические операции в языке программирования С++ для построения логических условий.
Таблица 2 – Логические операции С++
Логические операции |
Обозначение в С++ |
Составное условие |
Краткое описание |
И |
&& |
a==3 && b>4 |
Составное условие истинно, если истинны оба простых условия |
ИЛИ |
|| |
a==3 || b>4 |
Составное условие истинно, если истинно, хотя бы одно из простых условий |
НЕ |
! |
!(a==3) |
Условие истинно, если a не равно 3 |
Тип данных char
Тип данных char – это целочисленный тип данных, который используется для представления символов. То есть, каждому символу соответствует определённое число из диапазона чисел [0;255]. Тип данных char также ещё называют символьным типом данных, так как представление символов в С++ базируется именно на этом типе данных. Для представления символов в C++ типу данных char отводится один байт, в одном байте 8 бит, тогда возведём двойку в степень 8 и получим 256 - количество символов, которое можно закодировать. Таким образом, используя тип данных char можно отобразить любой из 256 символов. Все закодированные символы представлены в таблице ASCII. ASCII (от англ. American Standard Code for Information Interchange) – американский стандартный код для обмена информацией.
Таблица 3 – Таблица символов ASCII
№ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
nul |
sox |
stx |
etx |
eot |
enq |
ack |
bel |
bs |
ht |
1 |
nl |
vt |
ff |
cr |
so |
si |
dle |
dc1 |
dc2 |
dc3 |
2 |
dc4 |
nak |
syn |
etb |
can |
em |
sub |
esc |
fs |
gs |
3 |
rs |
us |
space |
! |
" |
# |
$ |
% |
& |
' |
4 |
( |
) |
* |
+ |
, |
- |
. |
/ |
0 |
1 |
5 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
: |
; |
6 |
< |
= |
> |
? |
@ |
A |
B |
C |
D |
E |
7 |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
8 |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
9 |
Z |
[ |
\ |
] |
^ |
_ |
' |
a |
b |
c |
10 |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
11 |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
12 |
x |
y |
z |
{ |
| |
} |
~ |
del |
А |
Б |
13 |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
14 |
М |
Н |
О |
П |
Р |
С |
Т |
У |
Ф |
Х |
15 |
Ц |
Ч |
Ш |
Щ |
ъ |
Ы |
Ь |
Э |
Ю |
Я |
16 |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
17 |
к |
л |
м |
н |
о |
п |
|
|
|
|
18 |
|
|
|
|
|
|
|
|
|
|
19 |
|
|
|
|
|
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
21 |
|
|
|
|
|
|
|
|
|
|
22 |
|
|
|
|
р |
с |
т |
у |
ф |
х |
23 |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
24 |
Ё |
ё |
Є |
є |
Ї |
ї |
Ў |
ў |
° |
· |
25 |
· |
|
№ |
¤ |
|
|
|
|
|
|
Таблица 3 представляет собой полный набор символов ASCII. В таблице ASCII, cимволы с нулевого по 31 включительно, являются управляющими ASCII символами. Это значит, что данные символы выполняют некоторые действия, причём эти символы печатаются с сочетанием клавиши Ctrl. В таблице 3 записано обозначение управляющих ASCII символов, но не их отображение при печати. Остальные же символы с 32 по 254 не являются управляющими и имеют вид, представленный в таблице 3.