Skip to main content

算術シフトとは何ですか?

算出変化は、数値を掛けるか分割する方法です。算術シフトは通常、バイナリ番号で実行されます。ただし、この概念は、任意の番号付けスキームに適用されます。250が算術的に左にシフトされると、結果の数は2500で、250は10を掛けます。0250として4桁を使用して250が表現される場合、算術的に右にシフトします。結果の数は0025で、250は10で割っています。したがって、算術シフトは、数値を数値スキームのベースで掛けるまたは分割する方法であると言う方が正しいです。それらは0Sおよび1Sを使用して表され、署名または署名なしで表現できます。算術左シフトでは、数字は左に1つのスペースでシフトされ、右にゼロが配置されます。算術的な右シフトでは、数字は左に保持されている左端の数値が右に1つのスペースでシフトされます。一般に、シフトはnスペースの場合があります。

は、符号なしのバイナリ数では、各位置は2のパワーであるため、バイナリ1は小数1、バイナリ10は小数2、バイナリ100は小数4などです。したがって、0110は小数6です。算術左シフトが実行されると、結果の数は1100です。これは10進12です。正と否定的な署名されたバイナリ番号が使用され、左端のビットが正またはゼロで0、負の数で1が使用されます。したがって、4ビット数の場合、10111は10進7であり、最大の正の数値です。負の数に最もよく使用されるスキームは、小数-1として1111を持ち、これは1000までずっと下がります。これは小数-8です。1010、小数-6です。1010の算術的権利シフト(10進数-6)は1101になります。これは小数-3です。左端のビットが保持されていることに注意してください。数値スキームの両端に制限があります。たとえば、0111の左シフト、10進7は小数-2を与え、1111の右シフト、10進数は小数-1を与えます。通常の乗算や分裂よりも実行します。そのため、コンピューターは、シフトユニットまたはシフトレジスタと呼ばれる比較的単純なメカニズムを使用して、この操作をサポートします。精通したプログラマーは、上記の制限が回避されるか、世話をしている限り、この操作を利用しています。