
本文共 3721 字,大约阅读时间需要 12 分钟。
������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������16���������������������������������������������������������������������������������������������������������
���������������������������������������
������������������������������������
typedef unsigned char U8_T;U8_T x_mod(U16_T num) { U8_T result = 0; result = num - (num / 16) * 16; return result;}U16_T DecToHex(U16_T num) { U16_T result = 0; U16_T tmp_result = 0; if (num < 255) { result = ((num / 16) << 4) + (num % 16); } else { result |= x_mod(num); // ������������ tmp_result = (num - x_mod(num)) / 16; // ��� result |= (x_mod(tmp_result) << 4); // ��������� tmp_result = (tmp_result - x_mod(tmp_result)) / 16; // ��������� result |= (x_mod(tmp_result) << 8); // ��������� tmp_result = (tmp_result - x_mod(tmp_result)) / 16; // ��������� result |= (x_mod(tmp_result) << 12); // ��������� } return result;}
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������
������������������������������������������������������������������������������������������������������������������
������������1���10400
printf("TEST: %5x\n", DecToHex(10400));
���������������������8208
���������������������
- 10400 �� 16 = 650 ��� 0
- 650 �� 16 = 40 ��� 10
- 40 �� 16 = 2 ��� 8
- 2 �� 16 = 0 ��� 2 ������������������������������ 2 8 10 0������ 0x8208���
������������2���19
printf("TEST: %5x\n", DecToHex(19));
���������������������13
���������������������
- 19 �� 16 = 1 ��� 3
- 1 �� 16 = 0 ��� 1 ��������������������� 1 3������ 0x13���
������������3���15
printf("TEST: %5x\n", DecToHex(15));
���������������������10
���������������������
- 15 �� 16 = 0 ��� 15 ������������������ 0xF���������������������������
10
���
������������4���30825
printf("TEST: %5x\n", DecToHex(30825));
���������������������2000D
���������������������
- 30825 �� 16 = 1926 ��� 9
- 1926 �� 16 = 120 ��� 6
- 120 �� 16 = 7 ��� 8
- 7 �� 16 = 0 ��� 7 ��������������������� 7 8 6 9������ 0x20069������������������������������������������������������
D869
���������������������������������������������������
������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
