#include<stdio.h>//暴力模拟
int change(int i,char a[]) { //将十进制转化为16进制
if (i >= 16) {
switch (i % 16) {
case 0:
a[0] = '0';
break;
case 1:
a[1] = '1';
break;
case 2:
a[1] = '2';
break;
case 3:
a[1] = '3';
break;
case 4:
a[1] = '4';
break;
case 5:
a[1] = '5';
break;
case 6:
a[1] = '6';
break;
case 7:
a[1] = '7';
break;
case 8:
a[1] = '8';
break;
case 9:
a[1] = '9';
break;
case 10:
a[1] = 'a';
break;
case 11:
a[1] = 'b';
break;
case 12:
a[1] = 'c';
break;
case 13:
a[1] = 'd';
break;
case 14:
a[1] = 'e';
break;
case 15:
a[1] = 'f';
break;
}
switch (i / 16) {
case 0:
a[0] = '0';
break;
case 1:
a[0] = '1';
break;
case 2:
a[0] = '2';
break;
case 3:
a[0] = '3';
break;
case 4:
a[0] = '4';
break;
case 5:
a[0] = '5';
break;
case 6:
a[0] = '6';
break;
case 7:
a[0] = '7';
break;
case 8:
a[0] = '8';
break;
case 9:
a[0] = '9';
break;
case 10:
a[0] = 'a';
break;
case 11:
a[0] = 'b';
break;
case 12:
a[0] = 'c';
break;
case 13:
a[0] = 'd';
break;
case 14:
a[0] = 'e';
break;
case 15:
a[0] = 'f';
break;
}
} else {
switch (i % 16) {
case 0:
a[0] = '0';
break;
case 1:
a[1] = '1';
break;
case 2:
a[1] = '2';
break;
case 3:
a[1] = '3';
break;
case 4:
a[1] = '4';
break;
case 5:
a[1] = '5';
break;
case 6:
a[1] = '6';
break;
case 7:
a[1] = '7';
break;
case 8:
a[1] = '8';
break;
case 9:
a[1] = '9';
break;
case 10:
a[1] = 'a';
break;
case 11:
a[1] = 'b';
break;
case 12:
a[1] = 'c';
break;
case 13:
a[1] = 'd';
break;
case 14:
a[1] = 'e';
break;
case 15:
a[1] = 'f';
break;
}
}
return 1;
}
int main() {
int a1, a2, a3, a4;
char a[3]="00", b[3]="00", c[3]="00", d[3]="00";
scanf("%d.%d.%d.%d", &a1, &a2, &a3, &a4);
change(a1, a);
change(a2, b);
change(a3, c);
change(a4, d);
printf("%s%s%s%s\n", a, b, c, d);
return 0;
}
1499IP地址
最新推荐文章于 2024-10-16 19:08:56 发布
这段代码展示了一个简单的C语言函数,用于将十进制整数转换为16进制字符串。它通过暴力模拟的方式,分别处理十进制数的高位和低位,并将其转换为对应的十六进制字符。程序最后读取四个十进制IP地址段,并将它们转换成十六进制格式输出。
摘要由CSDN通过智能技术生成