好吧,我已经编写了一些代码来反转六角形字符作为我组成的有趣练习的一部分.
这就是我现在所拥有的:
#include <stdio.h>
int main() {
char a,b,c;
while (1) {
c = getchar();
if (!feof(stdin)) {
a = c % 16;
b = (c - a) / 16;
c = (a*16) + b;
putchar(c);
}else{break;}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它适用于大多数值.例如,0xA0变为0x0A等...
但是,以"F"开头的值并不能很好地发挥作用.
0xF1变为0x10
0xFF变为0xF0
等...
有人能指出我正确的方向吗?
您正在使用已签名(在您的计算机上)数据类型.将其切换为无符号,它应该正常工作.