/* Get Sign, NaturalUnits, and ConstantUnits of the WORD data. */
BOOLEAN EdbGetNaturalIndex16(IN UINT16 Data16, OUT UINTN *NaturalUnits, OUT UINTN *ConstantUnits)
/* Get Sign, NaturalUnits, and ConstantUnits of the WORD data. */
BOOLEAN EdbGetNaturalIndex16(IN UINT16 Data16, OUT UINTN *NaturalUnits, OUT UINTN *ConstantUnits)
{
  BOOLEAN  Sign;
  UINTN    NaturalUnitBit;
  Sign            = (BOOLEAN)(Data16 >> 15);
  NaturalUnitBit  = (UINTN)((Data16 >> 12) & 0x7);
  NaturalUnitBit *= 2;
  Data16          = Data16 & 0xFFF;
  *NaturalUnits   = (UINTN)(Data16 & ((1 << NaturalUnitBit) - 1));
  *ConstantUnits  = (UINTN)((Data16 >> NaturalUnitBit) & ((1 << (12 - NaturalUnitBit)) - 1));
  return Sign;
}