# Logic and Binary

Binary is something I’ve struggled with which sounds silly given that it’s about as basic as you can get (a 1 and a 0). It’s the stuff that comes later - the arithmetic and bitwise operations that always seem to get me. If you share this problem, these videos are for you.

## The Basics of Logic

Let’s jump right in at the only place we can: the very begining, diving into the perfectly obvious and terribly argumentative 'rules of logic'.

*7 minutes*

## Boolean Algebra

You're George Boole, a self-taught mathematician and somewhat of a genius. You want to know what God's thinking so you decide to take Aristotle's ideas of logic and go 'above and beyond' to include mathematical proofs.

*15 minutes*

## Binary Mathematics

This is a famous interview question: 'write a routine that adds two positive integers and do it without using mathematic operators'. Turns out you can do this using binary!

*14 minutes*

## Bitwise Operators

Up until now we've been representing binary values as strings so we could see what's going on. It's time now to change that and get into some real binary operations.

*14 minutes*

## Logical Negation

We've covered how to add binary numbers together, but how do you subtract them? For that, you need a system for recognizing a number as negative and a few extra rules. Those rules are one's and two's complement.

*11 minutes*

## Entropy and Quantifying Information

Now that we know how to use binary to create switches and digitally represent information we need to ask the obvious question: 'is this worthwhile'? Are we improving things and if so, how much?

*16 minutes*

## Encoding and Lossless Compression

Claude Shannon showed us how to change the way we encode things in order to increase efficiency and speed up information trasmission. We see how in this video.

*27 minutes*

## Correcting Errors in a Digital Transmission, Part 1

There are *always* errors during the transmission of information, digital or otherwise. Whether it's written (typos, illegible writing), spoken (mumbling, environment noise) or digital (flipped bits), we have to account for and fix these problems.

*15 minutes*

## Correcting Errors in a Digital Transmission, Part 2

In the previous video we saw how we could correct errors using parity bits. In this video we'll orchestrate those bits using some math along with a divide and conquer algorithm to correct single-bit errors in transmissions of any size.

*23 minutes*

## Encryption Basics

In this video we play around with cryptography and learn how to encrypt things in a very simple, basic way. We then ramp up our efforts quickliy, creating our own one-time pad and Diffie-Hellman secure key transmitter.

*21 minutes*