uint8_t работает также как int8_t

106
17 февраля 2022, 14:20

Недавно начал изучать C++. Написал простенький скрипт, дабы проверить свои знания, в итоге вместо ожидаемого 255, консоль выводит -1(тоже самое, если бы я использовал знаковую разметку int8_t).

#include <iostream>
int main()
{
    uint8_t x = 0;
    std::cout << ~x;
    return 0;
}
Answer 1

Чтобы выполнить ~x, надо сделать integer promotion, т.е. неявное приведение более мелкого типа до int (то же самое для int16_t или uint16_t, если int 32-битный) т.е. получаем ~0x00000000, что равносильно (int) 0xFFFFFFFF, что означает -1.

READ ALSO
Как правильно использовать sendfile()?

Как правильно использовать sendfile()?

Узнал о вызову senfile(), прочитал про него на man(https://wwwopennet

100
Не работает проверка на ответ пользователя

Не работает проверка на ответ пользователя

У меня есть кодВычисление среднего значения вектора (отрицательные элементы)

107
Как узнать пересекаются ли поверхности в SDL?

Как узнать пересекаются ли поверхности в SDL?

Я делаю игру, и мне нужно, чтобы один игровой объект не накладывался на другойЕсть ли функция в SDL, позволяющая определить пересечение поверхностей...

79
Автогенерация кода в Qt

Автогенерация кода в Qt

QtCreator поддерживает разработку диаграмм конечных автоматов и UML-диаграммНо я никак не могу найти информацию, можно ли эти диаграммы использовать...

92