My suggestion would be to take a look at the bytefield package. If you have many diagrams to represent and are less familiar with TikZ, this might be the way to go.
To demonstrate it, here are a few short examples from the package documentation:
\begin{bytefield}{32}
\bitheader{0-31} \\
\bitbox{4}{Four} & \bitbox{8}{Eight} &
\bitbox{16}{Sixteen} & \bitbox{4}{Four}
\end{bytefield}
will produce:

Of course, you can omit \bitheader{0-31} and then the bis will not be numbered. Also, if you want a box that spans the whole width of your 'column' (or word for that matter), you can use the \wordbox macro, as below:
\begin{bytefield}{16}
\wordbox{1}{A 16-bit field} \\
\bitbox{8}{8 bits} & \bitbox{8}{8 more bits} \\
\wordbox{2}{A 32-bit field. Note that text wraps within the box.}
\end{bytefield}
which results in:

Or, you can even represent long data blocks in a convenient manner:
\begin{bytefield}{16}
\wordbox{1}{Some data} \\
\wordbox[lrt]{1}{Lots of data} \\
\skippedwords \\
\wordbox[lrb]{1}{} \\
\wordbox{2}{More data}
\end{bytefield}
which after compilation looks like this:

For more complex structures you just play with these building blocks, like in the following example (just for the fun of it I wrapped the bytefield example into a figure environment and added a caption):
\documentclass[a4paper]{article}
\usepackage{bytefield}
\begin{document}
RTP packetization of an MPEG-4 Visual bitstream according to the Internet Engineering Task Force's Request for Comments (RFC) number 3016:
\begin{figure}[hb!]
\centering
\begin{bytefield}[bitwidth=1.1em]{32}
\bitheader{0-31} \\
\begin{rightwordgroup}{RTP \\ Header}
\bitbox{2}{V=2} & \bitbox{1}{P} & \bitbox{1}{X}
& \bitbox{4}{CC} & \bitbox{1}{M} & \bitbox{7}{PT}
& \bitbox{16}{sequence number} \\
\bitbox{32}{timestamp}
\end{rightwordgroup} \\
\bitbox{32}{synchronization source (SSRC) identifier} \\
\wordbox[tlr]{1}{contributing source (CSRC) identifiers} \\
\wordbox[blr]{1}{$\cdots$} \\
\begin{rightwordgroup}{RTP \\ Payload}
\wordbox[tlr]{3}{MPEG-4 Visual stream (byte aligned)} \\
\bitbox[blr]{16}{}
& \bitbox{16}{\dots\emph{optional} RTP padding}
\end{rightwordgroup}
\end{bytefield}
\caption{MPEG-4 RTP package}
\end{figure}
\end{document}
and the result of it:

So these are some relevant examples with bytefield. I don't know to what extent you need to stick to the syntax you used in your question, but maybe these examples have vetted your appetite and the transition to make is worth the effort.
4 ci5 ci6 ci7 cp cr cp) and it should produce the output as in your code? If so, you need to tell us more about what the input components mean. For example,4means 4 columns;ci5means acentred column with number5. What is thei,crandcpfor? Put yourself in the communities shoes when you're asking questions. – Werner Apr 12 '13 at 04:06