質問

問題点: 理解できませんの数256(2^8)の抽出に IBM第:

一方、含まれない ビッグエンディアンシステムのバイトは1 の値x256.

各要素の配列を消費4噛、そのプロセッサーを読むね:1000"0000"です。の場合はビッグエンディアンで0001 0000でendiannessは影響しませんビット内部のバイトです。[2]矛盾を256に!?

質問 なぜそのような数256_dec(=1000 0000_binな32_dec(=0001 0000_bin)?

[2]グエンディアンの問題に影響を与えない配列がシングルバイトそのためには、byte"であると考えられる原子ユニットから保管する。

役に立ちましたか?

解決

このバイトは8ビットは4.第9回少なくとも重要なビットの符号なしintい値2^(9-1)=256.(少なくとも重要な価値の2^(1-1)=1)です。

からIBM記事:

unsigned char endian[2] = {1, 0};
short x;

x = *(short *) endian;

彼らは正;の値(short)256ビッグ-エンディアン、または(短期)1のどちらのエンディアンです。※

書き込み時のビット単位で配列{00000001_{base2},00000000_{base2}}.ビッグエンディアンが解釈するビット配列右から左へ読んでくださ;少しエンディアンがスワップのバイトです。

他のヒント

256年月日 ではない 1000_0000bin, では、 0000_0001_0000_0000bin.

と入れ替わりバイト(1バイト=8ビット)このように見え 0000_0000_0000_0001bin, である1年月日.

への回答フォローアップの質問:簡単に言うと、ありません"デフォルトのサイズの要素配列"ほとんどのプログラミング言語まで

C(おそらく最も人気のプログラミング言語)、サイズ配列の要素は何か--の種類により異なります。配列のcharに配列 通常 1バイトになります。ものその他の種類の場合には、そのサイズの各要素がどのようなsizeof()オペレーターが作れるというわけです。例えば、多くのC実装を与sizeof(短)==2のようにいただいた配列の、その後を占める2*Nバイトのメモリは、Nの数です。

多くの高レベルの言語のようだからもうかを見つけ多くのバイト配列要素があります。を固定バイト数のデザイナーの手によって多くのバイト、仲良しカップルにオススメの透明性、コードに依存するバイナリ表現が悪いとの互換性のためにも何らかの理由が変更に表現。

い役立っています。(こちらでお分かりになったのその他のコメントで書いた、最初のバージョンです。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top