Chuan Qin

Chuan Qin

Washington State University
"If you can't explain it simply, you don't understand it well enough." -- Albert Einstein

Data Storage

11 Sep 2021 » computer_archetecture

1 min abstract:

At the smallest scale in the computer, information is stored as bits and bytes. In this section, we’ll learn how bits and bytes encode information.


Bit

  • a “bit” is atomic: the smallest unit of storage
  • A bit stores just a 0 or 1
  • “In the computer it’s all 0’s and 1’s” … bits
  • Anything with two separate states can store 1 bit
  • In a chip: electric charge = 0/1
  • In a hard drive: spots of North/South magnetism = 0/1
  • A bit is too small to be much use
  • Group 8 bits together to make 1 byte

Everything in a computer is 0’s and 1’s. The bit stores just a 0 or 1: it’s the smallest building block of storage.


Byte

  • One byte = collection of 8 bits
  • e.g. 0 1 0 1 1 0 1 0
  • One byte can store one character, e.g. ‘A’ or ‘x’ or ‘$’

How Many Patterns With N Bits? (demo)

How many different patterns can be made with 1, 2, or 3 bits?

Number of bitsDifferent Patterns
10 1
200 01 10 11
3000 001 010 011
 100 101 110 111
  • 3 bits vs. 2 bits
  • Consider just the leftmost bit
  • It can only be 0 or 1
  • Leftmost bit is 0, then append 2-bit patterns
  • Leftmost bit is 1, then append 2-bit patterns again
  • 3-bits has twice as many patterns as 2-bits

  • In general: add 1 bit, double the number of patterns
  • 1 bit - 2 patterns
  • 2 bits - 4
  • 3 bits - 8
  • 4 bits - 16
  • 5 bits - 32
  • 6 bits - 64
  • 7 bits - 128
  • 8 bits - 256 - one byte
  • Mathematically: n bits yields 2n patterns (2 to the nth power)

One Byte - 256 Patterns (demo)

  • 1 byte is group of 8 bits
  • 8 bits can make 256 different patterns
  • How to use the 256 patterns?
  • How to store a number in a byte?
  • Start with 0, go up, one pattern per number, until run out of patterns
  • 0, 1, 2, 3, 4, 5, … 254, 255
  • One byte can hold a number between 0 and 255
  • i.e. with 256 different patterns, we can store a number in the range 0..255
  • Really good for storing characters/letters.

Bytes

  • “Byte” - unit of information storage
  • A document, an image, a movie .. how many bytes?
  • 1 byte is enough to hold about 1 typed character, e.g. ‘b’ or ‘X’ or ‘$’
  • All storage is measured in bytes, despite being very different hardware
  • Kilobyte, KB, about 1 thousand bytes
  • Megabyte, MB, about 1 million bytes
  • Gigabyte, GB, about 1 billion bytes
  • Terabyte, TB, about 1 trillion bytes (rare)

Bytes and Characters - ASCII Code

  • ASCII is an encoding representing each typed character by a number
  • Each number is stored in one byte (so the number is in 0..255)
  • A is 65
  • B is 66
  • a is 96
  • space is 32
  • “Unicode” is an encoding for mandarin, greek, arabic, etc. languages, typically 2-bytes per “character”

32 space 33 ! 34 “ 35 # 36 $ 37 % 38 & 39 ‘ 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92
93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 } 126 ~


Typing, Bytes, and You

  • Each letter is stored in a byte, as below
  • 100 typed letters takes up 100 bytes
  • When you send, say, a text message, the numbers are sent
  • Text is quite compact, using few bytes, compared to images etc.

Numbers in Computers

  • One byte works well for individual characters, but computers are also good at manipulating numbers.
  • Integers are typically stored with either 4 or 8 bytes
  • 4 bytes can store numbers between -2147483648 and 2147483647
  • 8 bytes can store numbers between -9223372036854775808 and 9223372036854775807
  • Adding in binary is just like normal addition with carrying
  • But when you run out of bits you can’t carry anymore
  • Leftmost bit indicates sign, so carrying to the leftmost bit changes a number ffrom positive to negative.
  • So adding 1 to 2147483647 goes to -2147483648!
  • Called Integer Overflow