16進数の順番について
-
parapara
16進数の順番について===訂正===
始めまして、独学でC言語を勉強してる物ですが、
コンピューターの中の16進数の事があまり良く分からないので教えてください。
PCはDELLのディメンション8300です。
コンパイラはMicrosoft Visual C++ .NET 55577-640-4383485-18159
説明不足だと思いますが、以下の状況(16進数のPCの中での順番が分からない)です。
#include<stdio.h>
#include<stdlib.h>
int main(void){
char ss[/url]="ABCDEF";
void *vpt;
int idt;
vpt=ss; //Aを指しているポインタ
idt=*(char *)vpt;
printf("char:%X\n",idt);
idt=*(int *)vpt;
printf("int :%X\n\n",idt);
{//変数を新たに宣言するためのブロック
int dt=0x41424344;
int *ip;
char *cp;
ip=&dt;
cp=(char *)ip;
printf("%x\n",*ip);
printf("%x\n",*cp++);
printf("%x\n",*cp++);
printf("%x\n",*cp++);
printf("%x\n",*cp++);
}
return(EXIT_SUCCESS);
}
=============実行結果===============================================
char:41 ←これは分かる
int :44434241 ←この行以下なんでこの順番なのかが分からない
41424344
44
43
42
41
Press any key to continue-
parapara
Re:16進数の順番について===訂正===
禁止事項だとは知らずにマルチポスト(の言葉自体知らなかった)してしまいました。
深く反省しましたが、何卒どうか質問にお答えください。
深く反省しましたが、何卒どうか質問にお答えください。
-
parapara
Re:16進数の順番について===訂正===
リトルエンディアンのことだと思いますが。
それが具体的に私のソースコードと直接どういう風に関係しているのか知りたいのです。それを詳解してる書籍などでも教えていただけると、幸いです。今使っている書籍は、”林 晴比古のシニア編”です。
それが具体的に私のソースコードと直接どういう風に関係しているのか知りたいのです。それを詳解してる書籍などでも教えていただけると、幸いです。今使っている書籍は、”林 晴比古のシニア編”です。
-
GPGA
Re:16進数の順番について===訂正===
[color=40D0FF]char[/color] ss[/url] = "ABCDEF";
ここの ss のアドレスが 仮に 100番地だったとしましょう。
その場合
番地: 100 101 102 103
値 : 0x41 0x42 0x43 0x44
となります。
int idt = *((int *)ss);
上記のようにint型のidtにキャストした場合、リトルエンディアンだと
idtの0バイト目:0x41(100番地)
idtの1バイト目:0x42(101番地)
idtの2バイト目:0x43(102番地)
idtの3バイト目:0x44(103番地)
になるので
対応するバイト: 3210
↓↓↓↓
idt == 0x44434241
となります。
自分で説明していて、わかりづらいな~とは思うのですけど
この説明でわかりますでしょうか?
なおビッグエンディアンの場合は、キャストした際に
idtの0バイト目:0x44(103番地)
idtの1バイト目:0x43(102番地)
idtの2バイト目:0x42(101番地)
idtの3バイト目:0x41(100番地)
になるので
対応するバイト: 3210
↓↓↓↓
idt == 0x41424344
となります。-
parapara
Re:16進数の順番について===訂正===
これ以上がない位的確に詳細に教えてもらえたと思います。
しかし難しくてなかなか理解できず、暫く理解するために考えてみる事にします。
本当にありがとうございました。
しかし難しくてなかなか理解できず、暫く理解するために考えてみる事にします。
本当にありがとうございました。
-
(報告)
Re:16進数の順番について===訂正===
既に解決済みですがマルチポスト先をリンクさせておきます。
http://www2.realint.com/cgi-bin/tarticl ... intc+29713
http://www2.realint.com/cgi-bin/tarticl ... intc+29713