Check point of work to date.
[dwarf-doc.git] / dwarf5 / latexdoc / encodingdecoding.tex
index 768dcf4..8e19a52 100644 (file)
@@ -1,31 +1,28 @@
 
 \chapter[Encoding/Decoding (Informative)]{Variable Length Data: Encoding/Decoding (Informative)}
 \label{app:variablelengthdataencodingdecodinginformative}
-\addtoindex{LEB128 encoding!algorithms}
+\addtoindexx{LEB128 encoding!algorithms}
 
 Here are algorithms expressed in a C-like pseudo-code to
 encode and decode signed and unsigned numbers in LEB128
-\addtoindexx{LEB128!unsigned, encoding as}
 representation.
 
-\begin{figure}[here]
-\caption{Algorithm to encode an unsigned integer}
+\begin{figure}[ht]
 \begin{lstlisting}
 do
 {
     byte = low order 7 bits of value;
     value >>= 7;
-    if (value != 0) /* more bytes to come */
+    if (value != 0)     /* more bytes to come */
         set high order bit of byte;
     emit byte;
 } while (value != 0);
 \end{lstlisting}
+\caption{Algorithm to encode an unsigned integer}
+\addtoindexx{LEB128!unsigned, encoding as}
 \end{figure}
 
-\addtoindexx{LEB128!signed, encoding as}
-
-\begin{figure}[here]
-\caption{Algorithm to encode a signed integer}
+\begin{figure}[ht]
 \begin{lstlisting}
 more = 1;
 negative = (value < 0);
@@ -35,9 +32,9 @@ while(more)
     byte = low order 7 bits of value;
     value >>= 7;
     /* the following is unnecessary if the
-      * implementation of >>= uses an arithmetic rather
-      * than logical shift for a signed left operand
-      */
+     * implementation of >>= uses an arithmetic rather
+     * than logical shift for a signed left operand
+     */
     if (negative)
         /* sign extend */
         value |= - (1 <<(size - 7));
@@ -50,14 +47,11 @@ while(more)
     emit byte;
 }
 \end{lstlisting}
+\caption{Algorithm to encode a signed integer}
+\addtoindexx{LEB128!signed, encoding as}
 \end{figure}
 
-
-
-\addtoindexx{LEB128!unsigned, decoding of}
-
-\begin{figure}[here]
-\caption{Algorithm to decode an unsigned LEB128 integer}
+\begin{figure}[ht]
 \begin{lstlisting}
 result = 0;
 shift = 0;
@@ -70,12 +64,11 @@ while(true)
     shift += 7;
 }
 \end{lstlisting}
+\caption{Algorithm to decode an unsigned LEB128 integer}
+\addtoindexx{LEB128!unsigned, decoding of}
 \end{figure}
 
-\addtoindexx{LEB128!signed, decoding of}
-
-\begin{figure}[here]
-\caption{Algorithm to decode a signed LEB128 integer}
+\begin{figure}[ht]
 \begin{lstlisting}
 result = 0;
 shift = 0;
@@ -89,8 +82,10 @@ while(true)
     if (high order bit of byte == 0)
         break;
 }
-if ((shift <size) \&\& (sign bit of byte is set))
+if ((shift <size) && (sign bit of byte is set))
     /* sign extend */
     result |= - (1 << shift);
 \end{lstlisting}
+\caption{Algorithm to decode a signed LEB128 integer}
+\addtoindexx{LEB128!signed, decoding of}
 \end{figure}