在 Linux 内核中,可以使用以下方法来划分两个 64 位数字:
#include<stdio.h>
int main() {
unsigned long long num = 18446744073709551615ULL; // 最大的 64 位无符号整数
unsigned long long div = 1000000000000000000ULL; // 除数
unsigned long long quotient = num / div; // 商
unsigned long long remainder = num % div; // 余数
printf("Quotient: %llu\n", quotient);
printf("Remainder: %llu\n", remainder);
return 0;
}
#include<stdio.h>
int main() {
unsigned long long num = 18446744073709551615ULL; // 最大的 64 位无符号整数
unsigned long long div = 1000000000000000000ULL; // 除数
unsigned long long quotient = num >> 33; // 商
unsigned long long remainder = num & (div - 1); // 余数
printf("Quotient: %llu\n", quotient);
printf("Remainder: %llu\n", remainder);
return 0;
}
在这两种方法中,第一种方法更简单易懂,而第二种方法则更高效。在实际应用中,可以根据具体需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云