long のバイナリ値を格納したい void ポインターがあります。例えば:
void * p;
long number;
p = malloc(16);
p = memset(p, 0, 16);
number = 15;
/* PRINTS FIRST 16 BYTES */
for(i = 0; i < memSize; i++)
printf("%02x", ((unsigned char *) p) [i]);
printf("\n");
上記のコードが印刷されます
00000000000000000000000000000000
たとえば、最初の 8 バイトを「number」の値に設定したいと思います。
000000000000000F0000000000000000
これを行う簡単な方法はありますか?ビットシフトはうまくいくと思いますが、それはかなり退屈になる可能性があります.