コンピュータへのデータの保存と 2 進数、8 進数、16 進数の導入


序文

この記事では、2 進数、8 進数、16 進数を含むさまざまな基数と、データがメモリに格納される方法について説明します。

1. バイナリ:

2 進数は実際には 2 未満の 1 桁です (たとえば、01111 は 10 進数で 15 を表します)。では、どうやってそれを取得したのでしょうか? 例:
バイナリ: 0+1 = 1 +1= 10 +1= 11 +1= 100、10、11、および 100 は、10、11、100 ではなく、1 0、1 1、1 0 0 として個別に読み取る必要があります。 ;
10 進数: 0+1 = 1 +1= 2 +1= 3 +1= 4 ;
法則はすでに現れています、実際、2 進数は 10 進数と同じであり、10 進数は 10 進数であり、2 進数は 10 進数です。はバイナリ 1 です。

2. 8進数:

8 進数は 8 進数の one と一致します
。例: 8
進数: 0+3 = 3 +3= 6 + 1= 7 +1 = 10 ; 10 進数: 0+3 = 3 + 3 = 6 +1= 7 +1= 8 ;

3. 16 進数:

16 進数の 1 の場合、16 進法も同様ですが、アラビア数字には 10、11 を表す単一の数字はありません。したがって、16 進数では、10 を表すには A を、11 を表すには B を、12 を表すにはC使用ますD は 13 を意味しEは 14 を意味し、F は 15 を意味します例:
16 進数: 7、8、9、A、B、C、D、E、F、10
進数: 7、8、9、10、11、12、13、14 、15;

4.X 進数は 10 進数に変換されます。

10 進数: 1234
1 * 10 3 + 2 * 10 2 + 3 * 10 1 + 4 * 10 0 = 1234
2 進数: 010011
1 * 2 4 + 1 * 2 1 + 1 * 2 0 = 19
8進数: 3741
3 * 8 3 + 7 * 8 2 + 4 * 8 1 + 1 * 8 0 = 2017
16進数: 2BE
2 * 16 2 + B * 16 1 + E * 16 0 = 702


1. コンピュータ内の整数の保存:

整数型には、 char 、 int 、long 、 short が含まれます (char 型は、メモリ内の ASCII コードに格納されるため、整数型ともみなされます)。整数は2 の補数
形式でメモリに格納されます。例:Unsigned int 10元コード:000000000000000000000000001010補数コード:1111111111111111111111111110110 unsigned int型なので32ビットで、メモリ上のデータ10は1111111111となります。 111111111 11111111111110110 の形式で保存されます。signed int 10元のコード: 000000000000000000000000001010補数: 01111111111111111111111111110110 signed int -10元のコード: 10000000000000000000000000001010補数: 111111111111111111111111111110110









2 番目に、データ内の浮動小数点数の保存:

浮動小数点型には次のものが含まれます。 float、double
浮動小数点数は科学的表記法で格納されるため、浮動小数点型の格納は整数とは大きく異なります。

#include <stdio.h>
 
int main()
{
    
    
    int n = 9;
    float* p = &n;
    printf("%d",*p);
    return 0;
}
输出结果是 0
#include <stdio.h>
 
int main()
{
    
    
    float n = 9;
    int* p = &n;
    printf("%d",*p);
    return 0;
}
输出结果是 1091567616

浮動小数点数の記憶計算式は次のとおりです:
(-1)^S * M * 2^E
64 ビット マシンの場合
ここに画像の説明を挿入
32 ビット マシンの場合
画像の説明を追加してください
S は符号ビット、E は指数、残りの M は有効な番号。
浮動小数点数は科学的表記法で保存されるため、M の数値の範囲は0<M<10であり、コンピューターのメモリは 2 進数で保存されるため、0<M<2になります。

IEEE 754 では、M をコンピュータ内に保存する場合、デフォルトではこの数値の最初の桁は常に 1 であるため、この数値は破棄して後半部分のみを保存できると規定されています。たとえば、1.01 を保存する場合、01 のみが保存されます。

E は符号なしの整数ですが、科学表記法の指数により、 2 -2などの負の数が表示されることがあります。したがって、IEEE 754 では、メモリに格納するときに E の実数値に中間数を加算する必要があると規定しています。8 ビット E の場合、中間数は 127、11 ビット E の場合、中間数は 1023 です。たとえば、2^10 の E は 10 であるため、32 ビット浮動小数点数として保存する場合は、10+127=137 (つまり 10001001) として保存する必要があります。

おすすめ

転載: blog.csdn.net/2302_76339343/article/details/130993446