#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { if (
argc!= 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if
(first != 0xcafe) { printf("you are wrong, sorry.\n"); exit(2);
//不等于0xcafe就退出,那first=0xcafe } unsigned int second = atoi(argv[2]); if (second %
5 == 3 || second % 17 != 8) { printf("ha, you won't get it!\n"); exit(3);
//满足条件就退出,那就不满足条件好了,second=25就可以 } if (strcmp("h4cky0u", argv[3])) { printf("so
close, dude!\n"); exit(4);//不相等就退出,那就使它相等那就argv[3]="h4cky0u" } printf("Brr wrrr
grr\n"); unsigned int hash = first * 31337 + (second % 17) * 11 + strlen(argv[3]
) - 1615810207; printf("Get your key: "); printf("%x\n", hash); return 0; } #
include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { int
hash= 0xcafe * 31337 + (25 % 17) * 11 + strlen("h4cky0u") - 1615810207; printf(
"Get your key: "); printf("%x\n", hash);//以16进制形式输出 return 0; }
0xcafe变不变10进制都行,16进制与10进制相乘,输出视为10进制的
int('0xcafe',16)//python16进制转换为10进制
strcmp(a,b)//ab相等返回0;
ps:
printf("%x\n", j); //输出结果为: 2f
printf("%X\n", j); //输出结果为: 2F
printf("%#x\n", j); //输出结果为: 0x2f
printf("%#X\n", j); //输出结果为: 0X2F %#X推荐使用

用在printf函数中,"%X,%O"中的%O控制符是错误的,因为有的编译器只认%o不认%O,就是说在printf中是分大小写的。%X对应输出大写字母的十六进制数,%x对应输出小写字母十六进制数;中间逗号照搬输出,%o对应输出八进制数。

技术
©2019-2020 Toolsou All rights reserved,
Java开发2020年最新常见面试题整理【Spring源码分析】42-@Conditional详解element-ui踩坑记录神仙面试宝典你有了吗?半月看完25大专题,居然斩获阿里P8offer使用css样式设计一个简单的html登陆界面XCTF攻防世界web新手练习_ 9_command_executionJS中的解构赋值的详解与具体用途Python Web 框架elementui 穿梭框 el-transfer 展示列表内容文字过长ConcurrentHashMap实现原理及源码解析