70,035
社区成员
发帖
与我相关
我的任务
分享
printf("sum:b+a<<24 = 0x%016I64x\n", b+(a<<24));
改为
printf("sum:b+a<<24 = 0x%016I64x\n", b+(((unsigned int)a)<<24));
可以吗printf("sum:b+a<<24 = 0x%llx\n", b+((unsigned int)a<<24));
这个办法是去掉u8 转int这个过程,直接跳到u32;
也可以这么解决:
printf("b = %#llx\n", (b << 8)+ a);