In lesson 3.5, we studied bitwise logical operators. The logical operations were then applied bit by bit. The logical operators studied in this course work according to the following rule:

- An operand is considered
**false**if its value is equal to**zero**; - otherwise, it is
**true**.

Here are some examples:

`0`

is**faux**`15`

is**true**`12.5`

is**true**`3<2`

is**false**`'r'`

is**true**- ...

There are three logical operators:

Operator | Name | Type |
---|---|---|

`&&` |
logical AND | binary |

`||` |
logical OR | binary |

`!` |
logical NOT | unary |

As for the comparison operators, these operators can only return **0 or 1**.
The returned value is always of integer type (`int`

).

These operators are mostly used to combine comparisons:

```
if (a<5 && a>10)
...
```

**For a logical operator, the value -5 is considered as ...**.

Check
Bravo! Any value other than zero is considered true.
Try again...

**What should be the type of the variable x?**

`x = 1 || 0;`

Check
Bravo! The type returned by the logical operators is always

`int`

Try again...
**What is the bitwise logical operator AND?**

Check
Bravo! Do not confuse the bitwise logical operator

`&`

with the logical operator `&&`

.
Try again...
**What does the following program display?**

`printf ("%d", 1565 || 0);`

Check
Bravo! We realize here a logical OR between 1565 (considered as TRUE) and 0 (considered as FALSE).
Try again...

**What does the following program display?**

`printf ("%d", (12 || 0) && 127);`

Check
Bravo! The equivalent logical operation is : \( (1 + 0).1 = 1 \).
Try again...

**How to test if p is between 0 and 100 inclusive?**

Check
Bravo! **AND** less than 100.
Try again...

`p`

must be greater than 0 **What is the equivalent instruction?**

`x = !(a<b);`

Check
Bravo! The operator

`!`

inverts the logical proposition `a<b`

.
Try again...
- Learn C programming
- Lesson 1.1. History of C programming language
- Lesson 1.2. First program
- Lesson 1.3. Compilation
- Lesson 1.4. Preprocessor directives
- Lesson 1.5. Which compiler to choose?
- Lesson 1.6. Flowchart
- Lesson 2.1. Types and variables
- Lesson 2.2. Integers
- Lesson 2.3. Floating point numbers
- Lesson 2.4. Characters
- Lesson 2.5. Variables initialization
- Lesson 2.6. Ariane flight 501
- Lesson 3.1. Arithmetic operators
- Lesson 3.2. modulo
- Lesson 3.3. Operators and types
- Lesson 3.4. Type casting
- Lesson 3.5. Bitwise operators
- Lesson 3.6. Bitwise operators details
- Lesson 3.7. Shifting operators
- Lesson 3.8. Assignment operators
- Lesson 3.9. Increment and decrement operators
- Lesson 3.10. Comparison operators
- Lesson 3.12. Operator precedence
- Lesson 4.1. printf
- Lesson 4.2. scanf
- Lesson 4.3. putchar
- Lesson 5.1. Conditional branching (if...else)
- Lesson 5.2. Nested if and indentation
- Lesson 5.3. Checking intervals
- Lesson 5.4. Ternary Operator ?:
- Lesson 5.5. switch..case statement
- Lesson 5.6. Break keyword in switch..case
- Lesson 6.1. do..while loop in C
- Lesson 6.2. While loop in C
- Lesson 6.3. For loop in C
- Lesson 6.4. How to choose the right loop in C ?
- Lesson 6.5. Exercices on loops in C
- Lesson 7.1. Bit masking
- Lesson 7.2. Bit masking, how to clear a bit in C?
- Lesson 7.3. Bit masking, how to set a bit in C?
- Lesson 7.4. Bit masking, how to toggle a bit in C?
- Lesson 7.5. Bit masking, how to check a single bit in C?
- Lesson 7.6. Overview of bit masking
- Lesson 8.1. Basic syntax of C functions
- Lesson 8.2. Calling C functions
- Lesson 8.3. Void keyword
- Lesson 8.4. Return keyword
- Lesson 8.5. Variable scope
- Lesson 8.6. Global variables
- Lesson 8.7. Static variables
- Lesson 8.8. Random numbers in C
- Lesson 8.9. Mathematical functions in C
- Lesson 9.1. Syntax of C arrays
- Lesson 9.2. Array initialization
- Lesson 9.3. Multidimensional arrays
- Lesson 9.4. How C arrays are stored in memory?
- Lesson 9.5. Arrays and functions
- Lesson 9.6. Exercises on C arrays
- Lesson 10.1. Strings in C
- Lesson 10.2. Null terminated string
- Lesson 10.3. The string.h library
- Lesson 10.4. String and functions
- Lesson 11.1. Introduction to pointers in C
- Lesson 11.2. Syntax of C pointers
- Lesson 11.3. Dynamic memory allocation
- Lesson 11.4. Incrementing pointers
- Lesson 11.5. Pointers as function argument in C
- Lesson 12.1. Introduction to structures in C
- Lesson 12.2. Properties of structures in C
- Lesson 12.3. Structures and pointers
- Lesson 12.4. Structures and functions
- Lesson 13.1. Recursive functions in C
- Lesson 13.2. Depth of recursive functions
- Lesson 13.2. Mutual recursion
- Lesson 14.1. Additional exercises

Last update : 11/04/2022