コンテンツ
1.メモリ内の形状ストレージ
元のコード、逆コード、補完コード
整数は2の補数形式でメモリに格納されます。
符号付き整数の場合、2進数の最上位ビットは符号ビットを表し、0は正の数を表し、1
は元のコード、逆コード、および負の数の補数コード間の変換を表します。
正の整数:
オリジナル、リバース、コンプリメントは同じです。
負の整数:
元のコードの符号ビットは変更されず、他のビットはビット反転されて逆コードを取得し、逆コード
は1ずつ加算されて補完コードになります。
2.型変換
1.暗黙の型変換
タイプよりも低いものint
は、操作の実行時にタイプに変換する必要がありますint
。これは整数拡張
と呼ばれます。変換が必要なタイプ
char
unsigned char
signed char
short
unsignedshort
C言語標準では、charそれがsignedまたはunsignedintであるかどうかは、完全にコンパイラー次第です
。char符号付き整数型の場合、それが表す値の範囲は==-128〜127 ==
符号なし整数型の場合、それが表す値の範囲は次のようになります。0〜255
これはサインですchar127 + 1が-128になると、-128〜127の間に円が形成されます
短い署名されたタイプであり、unsigned short
あなたが理解するのを助けるために以下のコードを見てください
int main()
{
char a = 0xb2;
整型提升为0xffffffb2
short b = 0xb200;
整型提升为0xffffb200
int c = 0xb2000000;
不需要提升
if (a == 0xb2)
printf("a\n");
if (b == 0xb200)
printf("b\n");
if (c == 0xb2000000)
printf("c\n");
return 0;
}
2.算術変換
複数の数値を一緒に演算する場合、これらの数値の型が異なる場合は、同じ型に変更して演算する必要があります。これが一般的な算術変換です。
これらのタイプは高から低にソートされます
long double
double
float
unsigned long int
long int
unsigned int
int
算術変換には意味があります。高精度を低精度に変換すると、一部のデータが失われます。
3.ビッグエンディアンとスモールエンディアンのバイトオーダーの導入と判断
注:バイト単位で保存
ビッグエンディアンストレージ:データの下位ビットがアドレスに存在します高いデータの上位ビットはアドレスに格納されます低い場所
リトルエンディアンのバイトオーダーストレージ:データの下位ビットがアドレスに存在します低いデータの上位ビットはアドレスに格納されます高い場所。
実装をプログラムしてください:あなたのマシンがどのストレージ方法であるかを決定してください
int panduan()
{
int i = 1;
return *(char*)&i;
}
int main()
{
int ret=panduan();
if (ret == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
4.メモリ内の浮動小数点型のストレージ分析
浮動小数点型のメモリへの格納は整数型とはまったく異なります
.32ビット浮動小数点数の場合、最初のビットは符号ビット(Sで表される)を表し、次の8ビットは指数ビット( E)で表され、残りはsのビットが重要なビット(Mで表される)を表します
。S:正の数の場合は0、負の数の場合は-1。
E:指数プラス127ビット=その格納番号、およびこれらの8ビットは符号なし数値を表しますM:その範囲は1〜2です。たとえば
、格納時に1を格納する必要はなく、小数点以下の数値を格納する必要はありません。
:
float i=6.5;
二进制为110.1 1.101 *2^2
s为0
E为2+127=129
M为101 后面位用0进行填充
0 10000001 10100000000000000000000
16进制进行表示
0x40d00000
コンピュータ操作の結果を見てみましょう、私
は誰もがそれを理解する必要があると信じています!
ここで注意すべき点がいくつかあります
。1。Eがすべて0の場合、指数ビットは1-127(1-1023(これは64ビット))であり、最上位ビットMは1を加算する必要はありません。 ±0に非常に近い数値。
2. Eがすべて1の場合、これは非常に大きな数、±無限大です。
これらの2つの注意点に加えて、それを保管する方法、それを取り出す方法。
64ビット浮動小数点型の場合、符号ビットの後の11ビットは指数ビットに加えて1023、残りは32ビット浮動小数点型の説明に似ています。
福祉:あなたが勉強する司教
ペンギンのスカート:720429262