QR英数字[文字_]:=
Which[DigitQ[文字],ToCharacterCode[文字][[1]]-48,
LetterQ[文字],ToCharacterCode[ToUpperCase[文字]][[1]]-55,
True,Switch[文字," ",36,"$",37,"%",38,"*",39,
"+",40,"-",41,".",42,"/",43,":",44,_,"エラー：英数字モードでは扱えません"]]

情報語[学籍番号_]:=
Module[{英数字={0,0,1,0},文字数,番号本体,終端={0,0,0,0}},
文字数=IntegerDigits[StringLength[学籍番号],2,9];
番号本体=Map[If[Length[#]==2,
IntegerDigits[#.{45,1},2,11],
IntegerDigits[#[[1]],2,6]]&,
Partition[Map[QR英数字,Characters[学籍番号]],2,2,1,{}]];
Part[Partition[
Partition[Flatten[{英数字,文字数,番号本体,終端}],8,8,1,0],
13,13,1,{{1,1,1,0,1,1,0,0},{0,0,0,1,0,0,0,1}}],1]//TableForm]

すぐ下のセルの学籍番号を自分のものに変え，Shift-Enter として，自分で作ったデータと一致するかを確認せよ．（その際「すべての初期化セルを自動評価しますか」と尋ねられるので、「はい」と答える．）

情報語["23B2127006C"]

次に，情報語に誤り訂正部分を加えて、送信語をつくる．（入力し易くするために，γ の代わりに r を用いた．）

生成元=r^8+r^4+r^3+r^2+1;
加法表示[x_]:=PolynomialMod[x,生成元,Modulus->2]
F256=Prepend[Table[加法表示[r^k],{k,0,254}],0];
位置[L_,e_]:=Position[L,e][[1]][[1]];
乗法表示[x_]:=If[x===0,0,r^(位置[F256,加法表示[x]]-2)];
g[x_]:=PolynomialMod[Product[(x+r^k),{k,0,12}],生成元,Modulus->2];

情報多項式 q(x) を前回作成した情報語を用いて定義する．(□ を自分のデータに従って 0 または 1 に直し，Shift-Enter とする．

q[x_]:=
  (0(r^7)+ 0(r^6)+ 1(r^5)+ 0(r^4)+ 0(r^3)+ 0(r^2)+ 0r+ 0)(x^12)+(0(r^7)+ 1(r^6)+ 0(r^5)+ 1(r^4)+ 1(r^3)+ 0(r^2)+ 0r+ 0)(x^11)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^10)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^9)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^8)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^7)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^6)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^5)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^4)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^3)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^2)+
(□ (r^7)+ □ (r^6)+ □ (r^5)+ □ (r^4)+ □ (r^3)+ □ (r^2)+ □ r+ □ )(x^1)+
(1(r^7)+ 1(r^6)+ 1(r^5)+ 0(r^4)+ 1(r^3)+ 1(r^2)+ 0r+ 0)

送信多項式 u(x) は次のように定義されるのであった：

u(x)=q(x)(x^13)+(q(x)(x^13)を g(x) で割った余り）

u[x_]:=Collect[PolynomialMod[q[x]*x^13+PolynomialRemainder[q[x]*x^13,g[x],x],生成元,Modulus->2],x];

u(x) を 0 と 1 の列に直す．

送信語=Mod[Map[Table[Coefficient[加法表示[#],r,7-i],{i,0,7}]&,Table[Coefficient[u[x],x,25-i],{i,0,25}]],2];
ExportString[Table[{i,送信語[[i]]},{i,1,26}],"Table"]