C 十六進數制反序
阿新 • • 發佈:2020-08-13
任意輸入四位十六進位制整數,以反序方式輸出
#include <stdio.h> void fun1(unsigned short a) { unsigned short b; printf("========\t"); printf("%#X\t", (unsigned short) (a << 12) >> 12 << 12); printf("%#X\t", (unsigned short) (a << 8) >> 12 << 8); printf("%#X\t", (unsigned short) (a << 4) >> 12 << 4); printf("%#X\t", (unsigned short) (a << 0) >> 12 << 0); printf("========\t"); b = (unsigned short) (a << 12) >> 12 << 12; // D000 b += (unsigned short) (a << 8) >> 12 << 8; // D000 + C00b += (unsigned short) (a << 4) >> 12 << 4; // DC00 + B0 b += (unsigned short) (a << 0) >> 12 << 0; // DCB0 + A printf("%#X\t", b); printf("========\n"); } void fun2(unsigned short a) { unsigned short b; printf("========\t"); printf("%X\t", (a & 0x000F) << 12); printf("%X\t", (a & 0x00F0) << 4); printf("%X\t", (a & 0x0F00) >> 4); printf("%X\t", (a & 0xF000) >> 12); printf("========\t"); b = (a & 0x000F) << 12; b += (a & 0x00F0) << 4; b += (a & 0x0F00) >> 4; b += (a & 0xF000) >> 12; printf("%X\t", b); printf("========\n"); } /** * 四位十六進位制反序:ABCD => DCBA */ int main() { // char 0000 0000 // short 0000 0000 0000 0000 unsigned short a = 0XABCD; // scanf("%4X", &a); printf("%X\n", a); fun1(a); fun2(a); }