Я хочу разделить два шестнадцатеричных числа:
, например: 88555680/10000
Теперь из онлайн-калькуляторов с шестнадцатеричным кодом я нахожу:
8855 какрезультат здесь
8855.568 как результат здесь
И в Python я нахожу:
>>> hex(int("0x88555680",16)//int("0x10000", 16))
'0x8855'
Вот мой код C:
# include <stdio.h>
int main() {
int a = 0x88555680;
int b = 0x10000;
int c = a/b;
printf("a%x, b%x, c%x\n", a, b, c);
}
С выводом:
a88555680, b10000, cffff8856
В C я нахожу 8856 , в то время как с Python и онлайн-калькуляторами я нахожу 8855
Вопрос: Почему выход C не 8855?Почему это 8856?Если это не 8855. что-то, а затем усечено до 0, то есть 8855?
Я очень плохо знаком с C, это может быть очевидной ошибкой.