タイトルはそれを要約しています: uint64_t を左シフトしても期待値が出力されません。その理由を知りたいです。私が得たのは、最上位 4 バイトがゼロになった期待される結果です。Debian Jessie 64bit で x86_64 CPU (Intel i7 3770k) を使用しています。これは、同じ動作を再現するテスト プログラムです。
#include <stdio.h>
#include <stdint.h>
int main(int argc, char * * argv)
{
uint64_t var = 0xDEFEC8ED;
printf("%016x\n", var << 24);
return 0;
}
出力
00defec8ed000000 // expected
00000000ed000000 // obtained