您能给我解释一下这些行吗?
printf("%lld\n", (long long) time(NULL));
printf("%.2x", (unsigned char)key[i]);
答案 0 :(得分:1)
%lld
的意思是“打印long long int变量”。
%.2x
的意思是“打印两个十六进制数字”。
但是,请注意,这两行代码是未定义的行为,因为您没有提供与格式说明符相对应的参数。
答案 1 :(得分:0)
%lld表示长双字 %.2x将从您选择的变量中打印点和2个十六进制数字(如果小于10,它将填充0)
答案 2 :(得分:0)
谢谢您的回答。
我发现此表(https://www.cs.uic.edu/~jbell/CourseNotes/C_Programming/DataTypesSummary.pdf)有用
对于那些来自Java背景的人来说,我理解这是在打印变量之前进行某种类型的转换(格式)。它还需要指定变量类型(无符号字符)。
printf(“”%。2x“,(unsigned char)键[i])-----> printf =(JAVA)简单打印输出(sout)
注意:如果需要保存新变量,可以使用snprintf
snprintf(str [i],128,“%.2x”,key [i]); -----> snprintf =(JAVA)str是一个新数组,其中key [i]以“%.2x”格式保存