我知道它會帶上一個數字並返回一個字符。我明白每行代碼都在做什麼,但我無法用一種有意義的方式真正地表達它在做什麼。有任何想法嗎?這個C函數在做什麼?
int function(uint64_t P1) {
uint64_t L1 = P1;
uint32_t L2 = 1;
while (L1 > 15) {
L2 = (uint64_t)L2 << 4;
L1 = L1 >> 4;
}
uint32_t L3 = 0;
while (L2 != 0) {
L1 = P1;
uint32_t L4 = 0;
L4 = L1 % L2;
uint64_t L5 = (uint64_t)L4;
sub_function(L1/L2);
L3++;
P1 = L5;
L2 = (uint64_t)L2 >> 4;
}
L1 = L3;
return L1;
}
void sub_function(uint64_t P1) {
if (P1 <= 9) {
printf("%c", P1 + 48);
} else {
printf("%c", P1 + 55);
}
}
它似乎是從十進制到十六進制的轉換 – AndyG
鑑於'L2'只有32位,所以我不太確定。 – Gerhardh
@Gerhardh:我憑經驗得出結論。沒有更多有意義的名字和評論,很難說出發生了什麼。 – AndyG