任意输入四位十六进制整数,以反序方式输出

#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 + C00
    b += (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);
}

十六进数制反序

相关文章:

  • 2022-02-04
  • 2022-02-01
  • 2022-01-27
  • 2022-02-07
  • 2021-12-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-18
  • 2021-12-01
  • 2021-09-25
相关资源
相似解决方案