如何从无符号 16 位添加有符号 8 位?
How to Add signed 8-bit from unsigned 16-bit?
我无法理解如何执行以下操作:
我有一个 uint8_t
元素的数组。从这个数组中,我想获取一个元素并将其添加到 uint16_t
项目中。但是,出于此操作的目的,我想将此 uint8_t
值解释为带符号的值。
uint16_t A;
uint8_t B;
uint16_t result;
result = A + (int8_t)B;
但是我了解到这个转换可能行不通。我想不出任何其他方法来让它工作。重要的是我的数组元素保持 uint8_t
否则。仅对于此操作,我是否希望将 uint8_t
元素解释为带符号的值 (int8_t
)。
您被误导了:您的代码没有任何问题,也没有任何证据支持此转换可能不起作用的说法。
从技术上讲,int8_t
类型在您的系统上不可用的可能性非常小,但在这种极不可能的情况下,也不会定义 uint8_t
。此类系统包括一些 DSP 和一些过时的大型机。如果你是针对更主流的系统编程,不用担心。
我无法理解如何执行以下操作:
我有一个 uint8_t
元素的数组。从这个数组中,我想获取一个元素并将其添加到 uint16_t
项目中。但是,出于此操作的目的,我想将此 uint8_t
值解释为带符号的值。
uint16_t A;
uint8_t B;
uint16_t result;
result = A + (int8_t)B;
但是我了解到这个转换可能行不通。我想不出任何其他方法来让它工作。重要的是我的数组元素保持 uint8_t
否则。仅对于此操作,我是否希望将 uint8_t
元素解释为带符号的值 (int8_t
)。
您被误导了:您的代码没有任何问题,也没有任何证据支持此转换可能不起作用的说法。
从技术上讲,int8_t
类型在您的系统上不可用的可能性非常小,但在这种极不可能的情况下,也不会定义 uint8_t
。此类系统包括一些 DSP 和一些过时的大型机。如果你是针对更主流的系统编程,不用担心。