資料儲存
上課時老師提及一個有趣的程式
#include <stdio.h>
#include <stdlib.h>
int main(){
int n=0x1234;
char *s = (char*)&n;
for(unsigned int i=0;i<4;i++){
printf("%02x ",s[i]);
}
system("pause");
}
這個程式有趣之處是所印出來的答案是 34 12 00 00 ,喔,跟我預先想的00 00 12 34是不一樣的,事實上,儲存方法沒有好壞,只是在管線設計時的傳輸資料的不同處,這就見仁見智了,這個程式在x86的電腦跑起來應該都是一樣的答案,但是在大型電腦或者是mac,我就不知道了。
2 則留言:
這是 little-endian vs. big-endian 的問題吧 XD。Mac(PowerPC)是 big-endian XD。
哈哈哈,老師那時候說,大型主機,像IBM是big-endian,想不到Mac也是XD
張貼留言