阅读背景:

为什么(无符号char)0x80 < 24 get sign扩展到0xffffffffff80000000(64位)?

来源:互联网 

The following program

下面的程序

#include <inttypes.h> /*  printf(" %" PRIu32 "\n"), my_uint32_t) */
#include <stdio.h> /* printf(), perror() */

int main(int argc, char *argv[])
{
  uint64_t u64 = ((unsigned char)0x80) << 24;
  printf("%"  PRIX64 "\n", u64);

  /* uint64_t */ u64 = ((unsigned int)0x80)  << 24;
  printf("%016"  PRIX64 "\n", u64);
}
#include <intty



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: