# Printing symbols

First of all, let's look how we can output symbols denoted by code points.

Your first option is to simply use hexadecimal code point number inside `\x{}`

.

Let's look at some simple examples from the mathematic logic.
To denote *logical conjunction* (more commonly known as **AND** operator),
mathematicians use symbol **∧**,
which has code point **U+2227**.
So in Perl you should

binmode STDOUT, ":encoding(UTF-8)"; say "1 \x{2227} 0 = 0";

#### Exercise

Try to the write same example for *logical disjunction* (**OR** operator).

**Hint**: logical disjunction symbol comes right after the conjunction one in Unicode table.

binmode STDOUT, ":encoding(UTF-8)"; say '';

You can also use the name of a code point, which would make your script more readable. To do that you would use `\N{}`

syntax instead of `\x{}`

(if you are using version of Perl less than 5.16 you'll need to put `use charnames;`

at the top of you script in order to use `\N{}`

). The name of a code point could be seen directly in the Unicode standard or, for example, with App::Uni utility.

Remember *exclusive disjunction* operator? Yes, it's just good old **XOR**. As **XOR** is just an addition modulo 2, mathematicians write it as a plus sing in a circle — **⊕**.

use charnames qw(:full); binmode STDOUT, ":encoding(UTF-8)"; say "1 \N{CIRCLED PLUS} 0 = 1";

#### Exercise

Let's do some negation. Write an equation for negating bit 1.

**Hint**: use Unicode **NOT SIGN**.

use charnames qw(:full); binmode STDOUT, ":encoding(UTF-8)"; say '';