コンピュータ内のシンボルの数は3つの方法、すなわち、ある元のコード、アンチコードと相補。三つの方法は、2つの大きさのビットと符号ビット部を有する、ビット、シンボルによって表される「n」は0で使用される「負」を表します。
:トランス負原コードシンボル、正のオリジナルコード、反転、相補的コードは同じであり、シンボルビット変化 ;負の補数に元のコード、ビット値のビット単位のシンボルビットの定数、値ビット単位のビット、プラス一端。
しかし、C言語Pythonの不在シンボルタイプとは異なり、整数xのビット反転によってPythonは、シンボルビットの最上位ビット:正と負の交換、すなわち、正、正と負を負となります。単純なビット単位を達成するために、署名されていません、
排他的または実装ビット単位によって完全なデータ。たとえば、あなたが、それはビット単位で行う必要がある16ビットのデータを持っている、これは行います:^ = 0xffffとし
次のC ++の例のPythonの代替アルゴリズム:
C ++コード:
1 UINT8 check_sum(UINT8 * BUF、UINT8 BUFLEN) 2 { 3 UINT8 ucCrc = 0 。 4 UINT8 I; 5 用(i = 0 ; iはBUFLENを<; iは++ ) 6 { 7 ucCrc + = BUF [i]は、 8 } 9 ucCrc =〜ucCrc。 10 ucCrc + = 1 ; 11 リターンucCrc。 12 }
Pythonコード:
1 DEFの:check_sum(DATA) 2 usCRC = 0 3。 ためのバイトでのデータ: 4 usCrc + = ORD(バイト) 5。 #Cのビット単位操作で使用されるようusCrc =〜usCrc#ここでは、同じ++をすることができる 6。 usCrc ^ = 0xFFで 7。 + = 1 usCrc 。8 リターン ' %02X '%usCrc