エンディアン変換とchar4個からlongへの変換
UNIXには便利なエンディアン変換関数がついていた!
全然知らなかったのですが、
man byteorder
すると出てきます。
#include<netinet/in.h> int main(void){ unsigned long a=0x10203040; unsigned char e[4]={0x10,0x20,0x30,0x40}; unsigned long b,c,d; b=ntohl(a); memcpy(&c,e,4); printf("a:%08X\n",a); printf("b:%08X\n",b); printf("c:%08X\n",c); return(0); }
実行結果は
a:10203040 b:40302010 c:40302010
Cってメモリの番地をあたえて、そこに流し込むだけで
コピーができるんだったね。うーん。ローレベルな言語です。