2進整数表現と2進演算
- 24-07-2022
- trienkhaiweb
- 0 Comments
2進法(2進法としても知られています)は、0と1の2文字のみを使用して数を表す記数法です。数値に達すると、この2進法になります。システムは、c、c ++、入門プログラミング、およびコンピューターサイエンスを学ぶときによく言及されます。この記事は、整数を2進数で表現し、操作を2進数で実行する方法を理解するのに役立ちます。
Mục lục
1.バイナリでの10進表現:
次のように2進数で表すと、31と33の数の例になります。
では、2進数から、小数をどのように表現するのでしょうか。以下の例を見てみましょう。
2.2進数を10進数で表す
値が1の単位ごとに、右から2の累乗で1回計算し、次の式に従って計算します。
3.2つの2進数を追加します
1 0 0 0 1 1 1 (71) + 1 1 1 1 0 (30) ------------- = 1 1 0 0 1 0 1 (101)
4.2つの2進数を引きます
1 1 0 1 1 1 0 − 1 0 1 1 1 --------------- = 1 0 1 0 1 1 1
5.負の数を2進数で表す
コンセプトに入る前に、このリンクを参照して読むことができます: https://en.wikipedia.org/wiki/Bi%E1%BB%83u_di%E1%BB%85n_s%E1%BB%91_%C3%A2m Asコンピューターのすべての文字または正と負の数は、0と1の数字を介してバイナリで表されることを理解しました。理論的には、コンピューターで負の数を表す方法はたくさんあります。数量記号と2の補数を表す方法に関心があります。数量記号を表す方法:数量記号を表す原則に従って、左端のビットは符号を表し、8ビットバイトは7ビット(マイナス)になります。ビット)記号)は、0000000(0 10 )から1111111(127 10 )までの数値を表すために使用されます。符号ビットを使用すると、上記の7ビットの意味が変わり、 -12710から+12710までの数値を表すことができます。符号法では、数値0は、00000000(+0)と10000000(-0)の2つの形式で表すことができます。
ただし、この方法は混乱を招きやすいです。たとえば、数値143を2進数に変換すると、数値は10001111として表されますが、cでこのプログラムを試してください。 #include <stdio.h> #include <stdlib.h> void writebitwise(int n){ char buffer [33]; itoa (n,buffer,2); printf ("binary: %sn",buffer); } int main(){ int n = 10; writebitwise(-15); }
数値-15は、シーケンス11111111111111111111111111110001( #include <stdio.h> #include <stdlib.h> void writebitwise(int n){ char buffer [33]; itoa (n,buffer,2); printf ("binary: %sn",buffer); } int main(){ int n = 10; writebitwise(-15); }
)として表されます。これは混乱しやすく、2進数で計算を行う場合、符号が原因で非常に混乱します。負の2進数を表すための2の補数法に進みます。
- まず、符号ビットは、数値が正の場合は0、数値が負の場合は1です。
- 次に、ビット演算子NOTを使用して、正の2進数のすべてのビットを反転(符号ビットを計算)して、対応する負の数を表します。
例:2進数で表される5 10の数値は00000101になります。2進数(8ビット分母)で表される-5 10の数値は11111010です。2の補数を表すには、数値に1を加算します。1の補数の2進数は、1を加算します。 11111010:11111010 + 1 =11111011。したがって、 11111011は、コンピューターでの-510の2の補数表現です。