解決策
16進数文字列を数値に変換関数は、生の16進数データに存在する接頭辞「0x」のない数値を想定しています。
- たとえば、「5555」と入力すると、10進値21845が返されます。これは、16進値0x5555の正しい10進表現です。
- ただし、「0x5555」を入力すると、0が返されます。これは、生の16進値0x5555が実際には数値ではない「UU」のASCII文字列に対応するため、0を返します。
文字列が標準表示で接頭辞を除外するには、16進数文字列を数値に変換関数の
オフセット入力で接頭辞を除外するようにします。文字列が16進表示の入力を維持しながらこの問題を解決したい場合は、
型変換関数を使用して値を変換できます。16ビット整数として型変換する必要があります。