\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
%\usepackage{fancyhdr}
%\usepackage{anysize}
\usepackage{nicefrac}
\usepackage{amssymb}
\usepackage[osf,sc]{mathpazo}
%\usepackage{lastpage}
\usepackage{color}
\begin{document}
\newcommand{\bin}{_\mathrm{b}}
\newcommand{\dec}{_\mathrm{d}}
\newcommand{\hex}[1]{\mathrm{{#1}_h}}
\newcommand{\divis}[4]{%
\begin{array}{r@{\hspace{5pt}}l}%
#1 & \begin{array}{|l} #2 \\\hline \end{array}\\% dividendo y divisor
\nicefrac{#3}{} & #4% resto y cociente
\end{array}}
\newcommand{\igual}{&=&}
%\newcommand{\nsf}[1]{\(\mathrm{#1}\)}
\newcommand{\¿}{\mbox{,}}
\newcommand{\nsf}{\fontfamily{ppl}\selectfont}
\newlength{\altmex}
\newcommand{\finis}{%
\settoheight{\altmex}{\mbox{M}}%
\addtolength{\altmex}{-1ex}%
\textcolor[named]{Gray}{\,\rule[0.5\altmex]{1ex}{1ex}}%
}
\title{Guía Ejercicios Obligatorios\\ Módulo Teórico 1}
\author{Iñaki García Mendive \qquad XX\,XXX}
\date{10 de Septiembre de 2008}
\maketitle
%\marginsize{25mm}{15mm}{10mm}{25mm}
%\thispagestyle{empty}
%\pagestyle{fancyplain}
%\lhead[\fancyplain{}{}]{\fancyplain{}{}}
%\chead[\fancyplain{}{}]{\fancyplain{}{}}
%\rhead[\fancyplain{}{}]{\fancyplain{}{}}
%\lfoot[\fancyplain{}{}]{\fancyplain{}{}}
%\cfoot[\fancyplain{}{}]{\fancyplain{Página \thepage\ de \pageref{LastPage}}{Página \thepage\ de \pageref{LastPage}}}
%\rfoot[\fancyplain{}{}]{\fancyplain{}{}}
\begin{enumerate}
\item
\begin{enumerate}
\item Se puede resolver mediante un algoritmo, porque la operación es finita y no hay ambigüedades en su resolución.
\item No es resoluble algorítmicamente porque falta el dato de la superficie del cuerpo en cuestión.
\item No es resoluble mediante un algoritmo pues el enunciado es ambiguo: la fábrica está \emph{cerca} de Rosario, pero no se define la ubicación con precisión.
\end{enumerate}
\item \( 252.68\dec \):
\[
\divis{252}{16}{12}{15}
\]
con lo cual \( 252.68\dec = \hex{(FC\¿\mbox{parte fraccionaria})}\), donde <<parte fraccionaria>> se calcula así:
\[\begin{array}{rcrcl}
0.68 \cdot 16 \igual 10.88 & \rightarrow & \hex{A},\\
0.88 \cdot 16 \igual 14.08 & \rightarrow & \hex{E},\\
0.08 \cdot 16 \igual 1.28 & \rightarrow & \hex{1}.
\end{array}\]
Finalmente, se tiene \( 252.68\dec = \hex{FC\¿AE1}\). Para convertir a binario sólo hace falta recordar la representación binaria de cada dígito hexadecimal, y escribirlas una a continuación de la otra: \[ \hex{FC\¿AE1} = 1111\,1100.1010\,1110\,0001\bin.\]
\item
\begin{enumerate}
\item \({111\,0101}\bin = -{000\,1011}\bin = {-11}\dec.\)
\item \({010\,1111}\bin = {\left(32+8+4+2+1\right)}\dec = {47}\dec.\)
\end{enumerate}
\item
\begin{enumerate}
\item \( \begin{array}[t]{rcl}
\hex{B5} \igual {1011\,0101}\bin,\\
\hex{9D} \igual {1001\,1101}\bin.
\end{array} \)
\item \(\begin{array}[t]{cr@{}c}
\raisebox{-5pt}[0pt][0pt]{\makebox[0mm]{+}} & {1011\,0101}\bin\\
& {1001\,1101}\bin\\
\cline{1-2}
& {1\,0101\,0010}\bin&.
\end{array}\)
\item Como el patrón elegido es de ocho bits, descartamos el bit más significativo, y nos queda \( {0101\,0010}\bin = \hex{52} \). Este resultado es claramente erróneo, pues \( \hex{B5} + \hex{9D} = \hex{152}\).
\end{enumerate}
\item Tenemos un formato de coma flotante normalizado de 16 bits, es decir:
\begin{itemize}
\makeatletter
\@beginparpenalty=10000%
\makeatother
\item Un bit para el signo: en este caso, \(1\), por ser negativo el número.
\item Diez bits para la mantisa:
\[\begin{array}{rcl}
0.341 \cdot 2 \igual 0.682\\
0.682 \cdot 2 \igual 1.364\\
0.364 \cdot 2 \igual 0.728\\
0.728 \cdot 2 \igual 1.456\\
0.456 \cdot 2 \igual 0.912\\
0.912 \cdot 2 \igual 1.824\\
0.824 \cdot 2 \igual 1.648\\
0.648 \cdot 2 \igual 1.296\\
0.296 \cdot 2 \igual 0.592\\
0.592 \cdot 2 \igual 1.184,
\end{array}\]
%
\({0.341}\dec={0.0101\,0111\,01}\bin = {\left(0.1010\,1110\,1 \cdot 10^{-1}\right)}\bin\), con lo cual la mantisa es: \({1\,0101\,1101}\bin\).
\item Cinco bits para el exponente:\footnote{expresado en notación en exceso para un patrón de 5 bits.} \({(-1+16)}\dec={15}\dec=01111\bin\).
\end{itemize}
%
Finalmente nos queda: \[{-0.341}\dec = {1 \ 01111 \ 1\,0101\,1101}\bin.\]
\item \(\begin{array}[t]{r@{\,}l} 0100&1010\\ 0010&0101\\ 1001&0010\\ 0100&1001\\ 1010&0100.\end{array}\)
\item
\begin{enumerate}
\item \(\begin{array}[t]{cr@{\,}r@{}c}
& 0100&1011\\
\mathrm{AND} & 1010&1011\\
\cline{1-3}
& 0000&1011&.
\end{array}\)
\item \(\begin{array}[t]{cr@{\,}r@{}c}
& 101&1010\\
\mathrm{OR} & 011&0111\\
\cline{1-3}
& 111&1111&.
\end{array}\)
\item \(\begin{array}[t]{cr@{\,}r@{}c}
& 011&0101\\
\mathrm{XOR} & 111&0010\\
\cline{1-3}
& 100&0111&.
\end{array}\)
\end{enumerate}
\item La operación lógica a emplear es la conjunción (\(\land\)), con la máscara \(0001\,1000\).
\item
\begin{tabular}[t]{c|p{0.7\textwidth}}
\nsf 12FD & Cargo el contenido de la celda \(\hex{FD}\) en el registro R2.\\
\nsf A204 & Roto el patrón de bits del registro R2 un bit a la derecha cuatro veces.\\
\nsf 2107 & Cargo el patrón \(0000\,0111\bin\) en el registro R1.\\
%\nsf 8122 & Almaceno R1 \textsc{and} R2 en el registro R2\\
\nsf 8122 & Almaceno R1 \(\land\) R2 en el registro R2.\\
\nsf 2104 & Cargo el patrón \(0000\,0100\bin\) en el registro R1.\\
%\nsf 9122 & Almaceno R1 \textsc{xor} R2 en el registro R2\\
\nsf 9122 & Almaceno R1 \(\veebar\) R2 en el registro R2.\\
\nsf 32FF & Almaceno el contenido de R82 en la celda \(\hex{FF}\).\\\
\nsf C000 & Finalizo el programa.\finis
\end{tabular}
\end{enumerate}
\end{document}