3 namespace duds {
namespace general {
23 template <
unsigned B,
typename T>
31 "At least 2 bits are required for signed magnitude input." 36 "The signed magnitude input must fit within the integer type." 39 typename std::make_signed<T>::type x:B;
41 s.x = (
typename std::make_signed<T>::type)x;
43 s.x = (~(1 << (B - 1)) & s.x) * -1;
std::make_signed< T >::type SignedMagnitudeToTwosComplement(const T x)
Converts a signed magnitude value to two's complement.