リトルエンディアンについて調べたのですが、理解出来ませんでした。
バイトオーダーがビックエンディアンとリトルエンディアンでは、実行結果が変わるのでしょうか?
それと、どうすれば16進数の下位2を取り出せますか?
桁数さえわかれば、あとはシフトして上位桁を追い出していくだけだと思うのですが、16進数の値の桁数の求め方とか分かりません。
OS:Windows10
コンパイラ:VisualStudio2010
言語:C
/*
以下のプログラムは「入力された整数の16進数下2ケタを表示する」プログラムである。
例・0x12345678 → 78 0x3456 → 56
「空欄」と記された部分を埋めてプログラムを完成させよ。
なお、このプログラムが動作するコンピュータのバイトオーダーはリトルエンディアンとする。
*/
#include<stdio.h>
//空欄1
void DispSimo(short* temp);
void DispSimo(long* temp);
//空欄1
void main(){
short a;
long b;
printf("1つ目の整数を16進数で入力:");
scanf("%hx", &a);
DispSimo(&a); //変数aの16進数下2ケタを表示
printf("2つ目の整数を16進数で入力:");
scanf("%lx", &b);
DispSimo(&b); //変数bの16進数下2ケタを表示
rewind(stdin);
getchar();
}
//空欄2
void DispSimo(short* temp){
printf("%x\n", *temp);
}
void DispSimo(long* temp){
printf("%x\n", *temp);
}
//空欄2