Dein Beispiel ist nach meiner Meinung durchaus elegant. Ich habe lediglich noch ein paar Änderungen vorgenommen.
\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
node distance=2em,
nodes = {draw, minimum size=2em},
infobit/.style = {fill=gray!40}
]
\node [infobit] (i0) {$i_0$};
\node [infobit] (i1) [right of=i0] {$i_1$};
\node [infobit] (i2) [right of=i1] {$i_2$};
\node [infobit] (i3) [right of=i2] {$i_3$};
\node (c0) [right of=i3] {$c_0$};
\node (c1) [right of=c0] {$c_1$};
\node (c2) [right of=c1] {$c_2$};
\end{tikzpicture}
\end{document}
Ich dachte beim Lesen des Wunsches von Vertigo jedoch eher an eine Matrix. Leider gibt es bei meinem Versuch dieser Variante eine senkrechte Verschiebung der Knoten für die Prüfbits.
Mein Versuch mit einer Matrix:
\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{matrix, positioning}
\begin{document}
\begin{tikzpicture}
\matrix [
matrix of math nodes,
nodes={
draw,
minimum size=1cm
},
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
infobit/.style = {fill=lightgray}
] (m) {
|[infobit]| i_0 & |[infobit]| i_1 & |[infobit]| i_2 & |[infobit]| i_3 & c_0 & c_1 & c_2\\
};
\draw [dashed] ([yshift=5mm]m-1-4.north east) to ([yshift=-7mm]m-1-4.south east);
\node [below=2mm of m-1-2, xshift=5mm] (infobit) {Informationsbits};
\node [below=2mm of m-1-6] (pruefbit) {Prüfbits};
\end{tikzpicture}
\end{document}