\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{{[}deleted{]}} \pdfinfo{ /Title (data-representation-aqa-computer-science.pdf) /Creator (Cheatography) /Author ({[}deleted{]}) /Subject (Data Representation - AQA Computer Science Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{5200A3} \definecolor{LightBackground}{HTML}{F4EFF9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Data Representation - AQA Computer Science Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{{[}deleted{]}} via \textcolor{DarkBackground}{\uline{cheatography.com/56036/cs/15729/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}{[}deleted{]} \\ \uline{cheatography.com/deleted-56036} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 14th May, 2018.\\ Updated 14th May, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Number Bases}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Denary}} or {\bf{Decimal}} & Base 10. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{Binary}} & Base 2. Used by computers to represent all data and instructions. Uses 1s and 0s to powers of 2 to represent whole numbers. \tn % Row Count 8 (+ 6) % Row 2 \SetRowColor{LightBackground} {\bf{Hexadecimal}} & Base 16. Used in computing because more values can be represented by fewer characters. This makes it easier for humans to read and understand. \tn % Row Count 14 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Converting Between Number Bases}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Denary}} to {\bf{Binary}} & Divide by 2, then read the remainders backwards. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{Binary}} to {\bf{Denary}} & Multiply the binary numbers (i.e. every single digit) by the relevant place value, then add all of these together. \tn % Row Count 8 (+ 5) % Row 2 \SetRowColor{LightBackground} {\bf{Denary}} to {\bf{Hexadecimal}} & Divide by 16, then read the divisors and remainder backwards. Then convert digits to hex digits. \tn % Row Count 13 (+ 5) % Row 3 \SetRowColor{white} {\bf{Hexadecimal}} to {\bf{Denary}} & 1. Separate the hex digits \{\{nl\}\} 2. Convert each digit to binary \{\{nl\}\} 3. Concatenate, then convert to denary \tn % Row Count 18 (+ 5) % Row 4 \SetRowColor{LightBackground} {\bf{Binary}} to {\bf{Hexadecimal}} & Convert to denary, then hex. \tn % Row Count 20 (+ 2) % Row 5 \SetRowColor{white} {\bf{Hexadecimal}} to {\bf{Binary}} & Convert to denary, then binary. \tn % Row Count 22 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Binary Addition}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Image could not be loaded.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{Image: \seqsplit{http://chortle.ccsu.edu/assemblytutorial/Chapter-08/ass08\_3.html}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Binary Shifts}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{8.4cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/danielles_1526261082_bin-shift.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{Binary shifts}} can be used for multiplication and division by powers of two. \newline \newline Image: \seqsplit{http://wiki.schoolcoders.com/gcse/data-representation/numbers/binary-shift/}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.9 cm} p{0.76 cm} x{4.94 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Units of Information}} \tn % Row 0 \SetRowColor{LightBackground} Bit & b & A single binary digit. \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Byte & B & 8 bits. \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} Kilobyte & kB & 1,000 bytes \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} Megabyte & MB & 1,000 kilobytes. \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} Gigabyte & GB & 1,000 Megabytes. \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} Terabyte & TB & 1,000 Gigabytes. \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{ASCII vs Unicode}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{What is {\bf{ASCII}}?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}A character set that uses 7 bits, so can represent up to 128 characters; this means that only Latin letters can be used (i.e. characters/letters from other languages can't be represented). However, it takes up less space that Unicode.} \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{What is {\bf{Unicode}}?} \tn \mymulticolumn{1}{x{8.4cm}}{\hspace*{6 px}\rule{2px}{6px}\hspace*{6 px}Unicode is also a character set, but it can represent many, many values, including non-Latin-based languages.} \tn % Row Count 10 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.64 cm} x{5.36 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Representing Images}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Pixel}} & A single point in a graphical issues. Short for 'picture element'. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} {\bf{Bitmap}} & A grid of pixels, with each pixel represented by a binary number. \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{Colour depth}} & Number of colours that can (not necessarily are) be represented in an image, and the corresponding number of bits needed to represent each pixel (e.g. 2 bits for 4 colours). The greater the colour depth, the bigger the file size. \tn % Row Count 15 (+ 9) % Row 3 \SetRowColor{white} {\bf{Resolution depth}} & How much detail there is in an image. The more pixels per inch, the higher the resolution. The higher the resolution, the bigger the file size. \tn % Row Count 21 (+ 6) % Row 4 \SetRowColor{LightBackground} {\bf{Metadata}} & Gives the software the information needed to display the image properly (size, resolution depth, colour depth). \tn % Row Count 26 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Bitmap file size = width x height x colour depth (in bits)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Data Compression}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{{\bf{Data compression}} is used to reduce file size, which means that they take up less storage space. {\bf{Lossy}} compression is where some data is removed - this means that an image would lose some detail. {\bf{Lossless}} compression preserves all of the information. \newline % Row Count 6 (+ 6) \{\{nl\}\}{\bf{Run length encoding}} (RLE) uses data frequency pairs to reduce the amount of data stored. It does so by stating the character and then the length of the run. Example: \newline % Row Count 10 (+ 4) 1001 1111 0101 can be shown as 1 1 2 0 5 1 1 0 1 1 1 0 1 1 \newline % Row Count 12 (+ 2) \{\{nl\}\}{\bf{Huffman coding}} is more efficient than RLE. It is also lossless. It finds the frequency of each data item to create a Huffman tree, which assigns the most frequent items the shortest code. When you move down a branch to the left, a 0 is assigned. When you move to the right, a 1 is assigned. \newline % Row Count 19 (+ 7) total bits needed = number of bits needed per character x number of characters% Row Count 21 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.96 cm} x{5.04 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Representing Sound}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Sample}} & A measure of amplitude at a given point. Used to convert an analogue wave into a digital format. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} {\bf{Sampling rate}} & The number of samples taken in a second. Measured in Hertz. \tn % Row Count 7 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{Sampling resolution}} & The number of bits per sample. \tn % Row Count 9 (+ 2) % Row 3 \SetRowColor{white} {\bf{Bit rate}} & The number of bits used per second of the audio. Usually measured in kilobits per second (kbps). \tn % Row Count 13 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{File size (bits) = sampling rate x resolution x lenght of recording (seconds)} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}