у меня есть есть хексовое значение char переменной 0x80, или же 128. Если сделать статик каст этой переменной к uint16_t, то я получаю огромное число. а хотелось бы сохранить конкретное битовое значение
кстати, обычное приведение типа в стиле С вроде ```myvar = (uint16_t)my_char;```как раз и делает этот reinterpret_cast
потыкал я эти преобразования. Так как char - знаковый (в данной реализации), то static_cast и си-каст производят расширение со знаком (забивают единицами старшие разряды). Решение - сначала кастовать к беззнаковому uint8_t, а уже потом расширять до uint16_t. Крч:
потыкал я эти преобразования. Так как char - знаковый (в данной реализации), то static_cast и си-каст производят расширение со знаком (забивают единицами старшие разряды). Решение - сначала кастовать к беззнаковому uint8_t, а уже потом расширять до uint16_t. Крч:
потыкал я эти преобразования. Так как char - знаковый (в данной реализации), то static_cast и си-каст производят расширение со знаком (забивают единицами старшие разряды). Решение - сначала кастовать к беззнаковому uint8_t, а уже потом расширять до uint16_t. Крч:
потыкал я эти преобразования. Так как char - знаковый (в данной реализации), то static_cast и си-каст производят расширение со знаком (забивают единицами старшие разряды). Решение - сначала кастовать к беззнаковому uint8_t, а уже потом расширять до uint16_t. Крч:
uint16_t value = (uint8_t)my_char
Если вы что-то такое делаете- лучше явно указывайте плюсовыми кастами свои намерения.