大佬教程收集整理的这篇文章主要介绍了c – 打印由16位分割的64位十六进制数据的最简单方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
0x1111_2222_3333_4444
我可以想到以下几点:
#define FIRST_MASK 0xFFFF000000000000 #define SECOND_MASK 0x0000FFFF00000000 #define THIRD_MASK 0x00000000FFFF0000 #define FOURTH_MASK 0x000000000000FFFF val = 0x1111222233334444 printf("0x%04x_%04x_%04x_%04x\n",\ (unsigned int)((val & FIRST_MASK) >> 48),(unsigned int)((val & SECOND_MASK) >> 32),(unsigned int)((val & THIRD_MASK) >> 16),(unsigned int)(val & FOURTH_MASK) );
是否有简单(或可能更干净)的方法来实现这一目标?
#include <stdint.h> #include <stdio.h> int main (void) { uint64_t val = 0x1111222233334444; printf("0x%04x_%04x_%04x_%04x\n",(unsigned int)(val>>48 & 0xFFFF),(unsigned int)(val>>32 & 0xFFFF),(unsigned int)(val>>16 & 0xFFFF),(unsigned int)(val>> 0 & 0xFFFF) ); }
以上是大佬教程为你收集整理的c – 打印由16位分割的64位十六进制数据的最简单方法全部内容,希望文章能够帮你解决c – 打印由16位分割的64位十六进制数据的最简单方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。