機械式の計算機(図1.2)で、0引く1の計算をすると、レジスタにズラッと9が並びます。電卓で、同じ計算をすると、マイナス記号の表示と共に単純に1が表示され、補数表現は出ません。電卓のレジスタは、表示する桁数に加えて、符号を保存する桁が内部にあります。一方、コンピュータは二進数のレジスタを使いますので、整数を表現するときの約束が二通りあります。一つは正の整数だけを表す場合であって、16ビットのレジスタは0から65535までの数を扱うとします。この最大数に1を足すと0に戻ります。もう一つの約束は、先頭の1ビットを負の符号に約束します。16ビットのレジスタは15ビットまでを有効な数値桁として扱いますので、正の整数の最大値は32767です。負数は二進数の補数で表し、0から1を引くと、すべてのビットが1になります。負数の絶対値の最大は、先頭のビットだけが1であって、この場合には-32768です。この状態から更に1を引くと、物理的に先頭のビットが0、残りがすべて1になりますので、これは正の整数の最大値を表します。この約束は、ビット並びを数字で表すときの約束ですが、内部的な計算規則はどちらも同じです。このビット並びを符号付きの整数とするか正の整数とするかの約束がコンピュータ言語の型の定義です。