電極が与えられた測定条件で 0V をクロスして設定する必要がある場合、電圧設定値は何らかの符合付き整数で処理することになる。通常我々が使用するマイクロプロセッサは「2の補数」(2's complement)を用いて符合付き整数を表現している。
ハードウエア設計者は、通常使用するプロセッサの符合付き整数は 8, 16, 32bit で扱われることに配慮することが望ましい。分析装置では 12bit で十分足りる設定電圧もあれば、性能上 24bit で計測しなければならない信号読み取りなどが存在する。これら 12bit, 24bit などの整数値は通常のプログラム環境で符合を正しく扱うにはプログラマによるプロセッサ上の整数表現とAD/DA コンバータ上の整数表現の変換が必要である。
2の補数によって整数を表現する場合、プログラムコード上必要なビット数より大きい整数を用いてデータを保持する。例えば 12bit DA であればプログラムコード上 16bit signed integer, 24bit DA であれば 32bit singed integer を用いてデータを保持する。
Binary Code | Unsigned value | 2's Complement value |
---|---|---|
0000 0000 | 0 | 0 |
0000 0001 | 1 | 1 |
0000 0010 | 2 | 2 |
0111 1110 | 126 | 126 |
0111 1111 | 127 | 127 |
1000 0000 | 128 | -128 |
1000 0001 | 129 | -127 |
1111 1110 | 254 | -2 |
1111 1111 | 128 | -1 |
2の補数では、プロセッサ上の値 0 がゼロボルトに対応し整数はマイナス側に 1 ビット高いビット分解能を有することにも注意されたい。
例えば、16bit 符合付き整数(2の補数)の最大値は 0x7fff (32767) であり、最小値は 0x8000 (32768) である。 プラス電圧で設定可能な最大値とマイナス電圧で設定できる最大値は 1/32768 ボルトの相違があり、装置によってはこの相違は significant である。
マイナスで設定できる最大の値をプロセッサ上の 0 とする。プラスの設定電圧は、実際の電圧値にマイナスで設定できる最大電圧値(符合を除いた)を加えたものである。
Offset Binary Code | Decimal Code | 2's Complement Binary |
---|---|---|
1111 | 7 | 0111 |
1110 | 6 | 0110 |
1101 | 5 | 0101 |
1100 | 4 | 0100 |
1011 | 3 | 0011 |
1010 | 2 | 0010 |
1001 | 1 | 0001 |
1000 | 0 | 0000 |
0111 | −1 | 1111 |
0110 | −2 | 1110 |
0101 | −3 | 1101 |
0100 | −4 | 1100 |
0011 | −5 | 1011 |
0010 | −6 | 1010 |
0001 | −7 | 1001 |
0000 | −8 | 1000 |