{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Exercici AvCont-5: Codificació Rice" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### a) ¿Cuántos bits son necesarios para codificar todos los enteros entre -1023 y +1023 (en codificación binaria natural con bit de signo)?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Es necesiten 11.0 bits\n" ] } ], "source": [ "print \"Es necesiten\", np.ceil(np.log2(len(xrange(-1023, 1023)))), \"bits\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### b) Calculad el código Rice de todos los enteros N entre -1023 y +1023 con M = 32. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | Código RICE | \n", "Valor de N | \n", "
---|---|---|
0 | \n", "01111111111111111111111111111111011111 | \n", "-1023 | \n", "
1 | \n", "01111111111111111111111111111111011110 | \n", "-1022 | \n", "
2 | \n", "01111111111111111111111111111111011101 | \n", "-1021 | \n", "
3 | \n", "01111111111111111111111111111111011100 | \n", "-1020 | \n", "
4 | \n", "01111111111111111111111111111111011011 | \n", "-1019 | \n", "
5 | \n", "01111111111111111111111111111111011010 | \n", "-1018 | \n", "
6 | \n", "01111111111111111111111111111111011001 | \n", "-1017 | \n", "
7 | \n", "01111111111111111111111111111111011000 | \n", "-1016 | \n", "
8 | \n", "01111111111111111111111111111111010111 | \n", "-1015 | \n", "
9 | \n", "01111111111111111111111111111111010110 | \n", "-1014 | \n", "
10 | \n", "01111111111111111111111111111111010101 | \n", "-1013 | \n", "
11 | \n", "01111111111111111111111111111111010100 | \n", "-1012 | \n", "
12 | \n", "01111111111111111111111111111111010011 | \n", "-1011 | \n", "
13 | \n", "01111111111111111111111111111111010010 | \n", "-1010 | \n", "
14 | \n", "01111111111111111111111111111111010001 | \n", "-1009 | \n", "
15 | \n", "01111111111111111111111111111111010000 | \n", "-1008 | \n", "
16 | \n", "01111111111111111111111111111111001111 | \n", "-1007 | \n", "
17 | \n", "01111111111111111111111111111111001110 | \n", "-1006 | \n", "
18 | \n", "01111111111111111111111111111111001101 | \n", "-1005 | \n", "
19 | \n", "01111111111111111111111111111111001100 | \n", "-1004 | \n", "
20 | \n", "01111111111111111111111111111111001011 | \n", "-1003 | \n", "
21 | \n", "01111111111111111111111111111111001010 | \n", "-1002 | \n", "
22 | \n", "01111111111111111111111111111111001001 | \n", "-1001 | \n", "
23 | \n", "01111111111111111111111111111111001000 | \n", "-1000 | \n", "
24 | \n", "01111111111111111111111111111111000111 | \n", "-999 | \n", "
25 | \n", "01111111111111111111111111111111000110 | \n", "-998 | \n", "
26 | \n", "01111111111111111111111111111111000101 | \n", "-997 | \n", "
27 | \n", "01111111111111111111111111111111000100 | \n", "-996 | \n", "
28 | \n", "01111111111111111111111111111111000011 | \n", "-995 | \n", "
29 | \n", "01111111111111111111111111111111000010 | \n", "-994 | \n", "
... | \n", "... | \n", "... | \n", "
2017 | \n", "11111111111111111111111111111111000010 | \n", "994 | \n", "
2018 | \n", "11111111111111111111111111111111000011 | \n", "995 | \n", "
2019 | \n", "11111111111111111111111111111111000100 | \n", "996 | \n", "
2020 | \n", "11111111111111111111111111111111000101 | \n", "997 | \n", "
2021 | \n", "11111111111111111111111111111111000110 | \n", "998 | \n", "
2022 | \n", "11111111111111111111111111111111000111 | \n", "999 | \n", "
2023 | \n", "11111111111111111111111111111111001000 | \n", "1000 | \n", "
2024 | \n", "11111111111111111111111111111111001001 | \n", "1001 | \n", "
2025 | \n", "11111111111111111111111111111111001010 | \n", "1002 | \n", "
2026 | \n", "11111111111111111111111111111111001011 | \n", "1003 | \n", "
2027 | \n", "11111111111111111111111111111111001100 | \n", "1004 | \n", "
2028 | \n", "11111111111111111111111111111111001101 | \n", "1005 | \n", "
2029 | \n", "11111111111111111111111111111111001110 | \n", "1006 | \n", "
2030 | \n", "11111111111111111111111111111111001111 | \n", "1007 | \n", "
2031 | \n", "11111111111111111111111111111111010000 | \n", "1008 | \n", "
2032 | \n", "11111111111111111111111111111111010001 | \n", "1009 | \n", "
2033 | \n", "11111111111111111111111111111111010010 | \n", "1010 | \n", "
2034 | \n", "11111111111111111111111111111111010011 | \n", "1011 | \n", "
2035 | \n", "11111111111111111111111111111111010100 | \n", "1012 | \n", "
2036 | \n", "11111111111111111111111111111111010101 | \n", "1013 | \n", "
2037 | \n", "11111111111111111111111111111111010110 | \n", "1014 | \n", "
2038 | \n", "11111111111111111111111111111111010111 | \n", "1015 | \n", "
2039 | \n", "11111111111111111111111111111111011000 | \n", "1016 | \n", "
2040 | \n", "11111111111111111111111111111111011001 | \n", "1017 | \n", "
2041 | \n", "11111111111111111111111111111111011010 | \n", "1018 | \n", "
2042 | \n", "11111111111111111111111111111111011011 | \n", "1019 | \n", "
2043 | \n", "11111111111111111111111111111111011100 | \n", "1020 | \n", "
2044 | \n", "11111111111111111111111111111111011101 | \n", "1021 | \n", "
2045 | \n", "11111111111111111111111111111111011110 | \n", "1022 | \n", "
2046 | \n", "11111111111111111111111111111111011111 | \n", "1023 | \n", "
2047 rows × 2 columns
\n", "