目次:
- あなたの指で最初に数えることができた時から慣れ親しんだ数字は、基になっているため<1099>一般に、プログラマはC ++変数を10進数で表現します。したがって、varの値を(たとえば)123と指定できますが、その意味を考慮してください。
- ビット数を使用する必要があります。人間は、011110112のような表現を使って、123 999 10 999というような平凡な値を表現するのは面倒ではありません。プログラマは、偶数ビットを使用して数値を表現することを好みます。
ビデオ: 探三郎(インストール方法) 「フリーソフト動画解説」 2024
C ++変数は、内部的にいわゆる2進数として格納されます。 2進数は、 ビットとして知られる1および0値のシーケンスとして記憶される。 ほとんどの場合、数字を表すために使用する特定のビットを扱う必要はありません。しかし、時にはビットレベルで数値を変えるのは実用的で便利です。そのため、C ++はその目的のために一連の演算子を提供します。
いわゆる ビット単位の論理演算子は、ビットレベルで引数に作用します。これらの仕組みを理解するには、まずコンピュータが変数をどのように格納するかを調べます。 <! - 1 - >
10進数のシステムあなたの指で最初に数えることができた時から慣れ親しんだ数字は、基になっているため<1099>一般に、プログラマはC ++変数を10進数で表現します。したがって、varの値を(たとえば)123と指定できますが、その意味を考慮してください。
123などの数字は、1 * 100 + 2 * 10 + 3 * 1を指します。これらのすべての基数 - 100,10および1は10の累乗です。 123 = 1 * 100 + 2 * 10 + 3 * 1 999少し異なる(しかし同等の)方法で表現すると、123は次のようになります。 123 = 1 * 10 < 0電力999に対する任意の999個の数字は1であることを覚えておいてください(この数字は、 999 + 3 * 10999)。 他の数字システム
おそらく、カウントシステムの基礎(または
ベース)として10を使用するのはおそらく、オリジナルの計数ツールである10人の人間の指に由来しています。計数システムのための別の基盤は、20年と同じように簡単にできます。
<! - 3 - >
私たちの番号体系が犬によって発明された場合、それは8に基づいている可能性があります(各足の1桁が脚の後部に見えません)。数学的には、このような999 システムは、まったく同様に機能するであろう。【数9】1 9 8 9 9 8 9 9 8 9 9 9 9ここで小さな10及び8は、10進数(底10)については10、8進(8)については8の番号付けシステムを指す。計数システムは、任意の正のベースを使用することができる。 バイナリナンバーシステム 本質的に2本の指を持つコンピュータです。コンピュータは、基数2を使用してカウントすることを好む。数123 999は、次のように表現される。【数9】10 9 9 = 0 * 2 9 9 9 9 9 9 1 + 1×2 999 + 1×2 999 + 1×2 999 + 0×2 999 2 999 + 1×2 + 1×16 + 1×8 + 1×2 + 1×2 + 9×1 + 2×8 +コンピュータ慣習では、4桁、8桁、16桁、32桁、または64桁の2進数字を使用して、2桁の数字を表すが、先頭の数字が0であっても表現される。これは、コンピュータが内部的に構築されているためです。 数字 という用語は10の倍数を意味するため、
2進数 は ビット999( 2進数 >)。 999バイトは8ビットからなる。 (999バイト - それは良いアイデアのようには思えませんでした。)メモリは通常バイト単位で測定されます(ロールはパン屋数で測定されます)。 このような小さな基盤では、数字を表現するために 大きな
ビット数を使用する必要があります。人間は、011110112のような表現を使って、123 999 10 999というような平凡な値を表現するのは面倒ではありません。プログラマは、偶数ビットを使用して数値を表現することを好みます。
C言語の初期段階では、3ビットに基づく8進数のシステムがデフォルトのバイナリシステムでしたが、今日でもこの痕跡があります.0から始まる定数はC ++では8進数とみなされます。したがって、行: cout << "0173 =" << 0173 << endl; 0173 = 123
しかし、8進数は4ビット数字に基づく16進数 システムにほぼ完全に置き換えられました。 16進数は、0〜9の数字に同じ数字を使用します。9〜16の数字の場合、16進数はアルファベットの最初の6文字を使用します。Aは10、Bは11などです。このように、123 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9プログラマは、各場合の先頭桁が0であっても、4桁の16進数で16進数を表現することを好む。最後に、7Bなどの16進数を表現したい
16 端末は の添え字もサポートしていません。ワードプロセッサであっても、フォントを添え字モードに変更するだけで2桁の桁数を入力することができます。 したがって、プログラマ(愚か者はいない)は、0xで16進数を始めるという規則を使用します。したがって、7Bは0x7Bになります。この規則を使用すると、16進数値0x7Bは小数点123に等しく、0x123の16進数は小数点291に等しくなります。コードスニペット cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; 0x7B = 123 0x123 = 291 10進数に適用するのと同じ方法で、すべての数学演算子を16進数で使用できます。 本当にしたい場合は、接頭辞 '0b'を使ってC ++ '14でバイナリ数値を書くことができます。したがって、123は0b01111011になります。