Когда я пытаюсь выполнить шестнадцатеричное умножение 16 битов на 16 бит с использованием типа данных int64_t, отображаемый результат ограничивается 32 битами, а 33-битный, если он присутствует, никогда не отображается, хотя я определяю операнды, а такжедлина результата составляет 64 бита.
Вот простой код, который я использую:
#include<stdio.h>
#include <stdint.h>
int main()
{
int64_t a, b, r;
a = 0xabcd;
b = 0xdbca;
r = a * b * 3;
printf("%x", r);
return 0;
}
Выводится следующий результат: ba7fcc46
Ожидаемый результат:1ba7fcc46
Пожалуйста, помогите мне здесь.