\documentclass[12pt,leqno]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage[scaled=0.875]{helvet}
\renewcommand{\ttdefault}{lmtt}
\usepackage{amsmath,amssymb,makeidx}
\usepackage{fancybox}
\usepackage{tabularx}
\usepackage[normalem]{ulem}
\usepackage{pifont}
\usepackage{textcomp} 
\usepackage{multicol}
\usepackage{colortbl}
\newcommand{\euro}{\eurologo{}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\D}{\mathbb{D}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\C}{\mathbb{C}}
\usepackage[left=2.5cm, right=2.5cm, top=1.7cm, bottom=2.8cm]{geometry}
\newcommand{\vect}[1]{\mathchoice%
{\overrightarrow{\displaystyle\mathstrut#1\,\,}}%
{\overrightarrow{\textstyle\mathstrut#1\,\,}}%
{\overrightarrow{\scriptstyle\mathstrut#1\,\,}}%
{\overrightarrow{\scriptscriptstyle\mathstrut#1\,\,}}}
\renewcommand{\theenumi}{\textbf{\arabic{enumi}}}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
\renewcommand{\theenumii}{\textbf{\alph{enumii}}}
\renewcommand{\labelenumii}{\textbf{\theenumii.}}
\def\Oij{$\left(\text{O},~\vect{\imath},~\vect{\jmath}\right)$}
\def\Oijk{$\left(\text{O},~\vect{\imath},~\vect{\jmath},~\vect{k}\right)$}
\def\Ouv{$\left(\text{O},~\vect{u},~\vect{v}\right)$}
\def\e{\text{e}}
\def\i{\text{i}}
\setlength{\voffset}{0,5cm}
\usepackage{fancyhdr}
\usepackage[np]{numprint}
\usepackage[frenchb]{babel}
%\usepackage{phaistos}
%\usepackage{hieroglf}
\def\u{\boxtimes}
\def\z{\square}
\begin{document}
\begin{center}{\Large \textbf{\decofourleft~Terminale STI2D SIN 2~\decofourright\\
Devoir maison\\IEEE 754\\}}
\end{center}
\renewcommand{\labelitemi}{\textbullet}
\renewcommand{\labelitemii}{$\circ$}
\setlength{\parindent}{0cm}

Dans ce devoir, on va représenter par des octets certains nombres non nécessairement entiers positifs, et les octets seront représentés par 8 cases cochées (pour "1") ou non (pour "0"). Par exemple l'octet 10011001 sera dessiné ainsi:


$$\u\z\z\u\u\z\z\u$$

Chaque octet sera découpé en trois parties:

\begin{itemize}
\item Le premier bit (tout à gauche) représente le \emph{signe} du nombre: $\u$ pour un nombre négatif, $\z$ pour un nombre positif.
\item Les trois bits suivants représentent l'\emph{exposant}, de la façon suivante:
\begin{itemize}
\item $\z\z\z$ représente l'exposant -3, ce qui veut dire que la mantisse doit être multipliée par $2^{-3}=0,125$ pour avoir le nombre;
\item $\z\z\u$ représente l'exposant -2, ce qui veut dire que la mantisse doit être multipliée par $2^{-2}=0,25$ pour avoir le nombre;
\item $\z\u\z$ représente l'exposant -1, ce qui veut dire que la mantisse doit être multipliée par $2^{-1}=0,5$ pour avoir le nombre;
\item $\z\u\u$ représente l'exposant 0, ce qui veut dire que la mantisse doit être multipliée par $2^{0}=1$ pour avoir le nombre;
\item $\u\z\z$ représente l'exposant 1, ce qui veut dire que la mantisse doit être multipliée par $2^{1}=2$ pour avoir le nombre;
\item $\u\z\u$ représente l'exposant 2, ce qui veut dire que la mantisse doit être multipliée par $2^{2}=4$ pour avoir le nombre;
\item $\u\u\z$ représente l'exposant 3, ce qui veut dire que la mantisse doit être multipliée par $2^{3}=8$ pour avoir le nombre;
\item Mais $\u\u\u$ est réservé aux dépassements de capacité; il représente $\pm\infty$ (selon le bit de signe) si les 4 bits de la mantisse sont tous nuls ($\z\z\z\z$) et un objet non numérique noté \emph{NaN}\footnote{En anglais, NaN abrège "Not a Number"} sinon. 
\end{itemize}
\item Les 4 bits suivants (la deuxième moitié de l'octet) représentent la \emph{mantisse}. Pour calculer la mantisse à partir d'un mot de 4 bits, on commence par le coder en un entier (de 0 pour $\z\z\z\z$ à 15 pour $\u\u\u\u$) puis on divise le résultat par 16 (on a alors un nombre entre 0 et 0,9375) et ensuite
\begin{itemize}
\item si l'exposant est -3 ($\z\z\z$) on multiplie ce nombre par 0,125 puis on positionne son signe, pour avoir le nombre représenté;
\item sinon on additionne 1 à ce nombre avant de multiplier par la puissance de 2 déterminée par l'exposant, et de fixer le signe.
\end{itemize}
\end{itemize}


\begin{enumerate}
\item \textbf{Conversion vers des nombres décimaux}
\begin{enumerate}
\item Expliquer pourquoi l'octet $\z\z\u\u\z\z\z\z$ (signe $\z$, exposant $\z\u\u$ et mantisse $\z\z\z\z$) représente le nombre 1.
\item Montrer que l'octet $\z\z\u\u\u\z\z\z$ (signe $\z$, exposant $\z\u\u$ et mantisse $\u\z\z\z$) représente le nombre 1,5.
\item Montrer que l'octet $\u\u\z\z\z\z\z\z$ représente le nombre -2.
\item Quel est le nombre représenté par l'octet $\z\u\z\u\u\u\z\z$ (signe $\z$, exposant $\u\z\u$ et mantisse $\u\u\z\z$)?
\item Montrer que l'octet affiché au début de la page 1 représente le nombre -0,390625.
\item Le plus petit nombre strictement positif est représenté par l'octet $\z\z\z\z\z\z\z\u$. Quel est ce nombre? \emph{Attention: L'exposant est -3} 
\item Le plus grand nombre avant dépassement de capacité est  représenté par l'octet \\${\z\u\u\z\u\u\u\u}$ (signe $\z$, exposant $\u\u\z$ et mantisse $\u\u\u\u$. Quel est ce nombre?
\end{enumerate}


\item \textbf{Écriture de nombres avec ce code}
\begin{enumerate}
\item Écrire le nombre 1,75 sur cet octet: ${\z\z\z\z\z\z\z\z}$ (cocher les bonnes cases)
\item Écrire le nombre -5 sur cet octet: ${\z\z\z\z\z\z\z\z}$ (cocher les bonnes cases)
\item Écrire le nombre 5,25 sur cet octet: ${\z\z\z\z\z\z\z\z}$ (cocher les bonnes cases)
\item Écrire le plus grand nombre inférieur à 0,1 sur cet octet: ${\z\z\z\z\z\z\z\z}$ (cocher les bonnes cases)
\item Écrire le plus petit nombre supérieur à 0,1 sur cet octet: ${\z\z\z\z\z\z\z\z}$ (cocher les bonnes cases)
\item Écrire un exemplaire de donnée non numérique ("NaN") sur cet octet: ${\z\z\z\z\z\z\z\z}$; combien y a-t-il de réponses possibles?

\end{enumerate}

\item \textbf{Représentation de l'infini}

On rappelle que $+\infty$ (${\z\u\u\u\z\z\z\z}$) modélise les dépassements de capacité. Pour respecter cette modélisation,

\begin{enumerate}
\item Quel devrait alors être le résultat de $15,5+15,5$?
\item Quel devrait être le résultat de $+\infty+1$?
\item Quel devrait être le résultat de $\infty+\infty=2\times\infty$?
\item Quel devrait être le résultat de $\infty\times\infty$?
\item Quel devrait être le résultat de $\infty-2$?
\item Quel devrait être le résultat de $\infty-\infty$?
\end{enumerate}

\end{enumerate}

\end{document}