Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
6 мая
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
1054849
Топик полностью
Kceния
(24.11.2020 12:22, просмотров: 98)
ответил
Sl
на
Как грамотно сделать преобразование типа с int16_t в int32_t? int32_t I32Var1; int16_t I16Var2; I32Var1 = (int32_t )I16Var2; "Неправильно" работает когда I16Var2 имеет отрицательное значение. Я конечно могу в рукопашную, если I16Var2 меньше нуля, добавить 0xFFFF0000 к I32Var1 после пребразования. Но хочется сделать это правильно и красиво.
"Неправильно" работать может только в том случае, когда I16Var2 определена как uint_t. А если оба int-ы, то знак обязан расширяться автоматически. А красиво писать так: "I32Var1 = I16Var2;" :)
Ответить