2

xcodeでobjective-cを使用しています。uint8_tのデータを2の補数に変換するにはどうすればよいですか?範囲は-127から127ですよね?

私が持っている場合:

uint8_t test = 0xF2

使用できる関数やメソッドが組み込まれていますか?誰かが簡単な機能を持っていますか?

ありがとう!

4

2 に答える 2

3

これはあなたが望むことをしますか?

int8_t twosComplement = (int8_t)test;
于 2012-06-25T17:01:23.680 に答える
1

質問は少し混乱しているようです。2の補数に変換するように求められますが、2の補数は、10進数ではなく、2進数でのみ意味があります。

unit9_t値を符号付きの値にしたい場合は、次のように符号付きの型にキャストできます。(int16_t)unsigned8variable-符号付きの型を持つ変数に割り当てます。

ただし、オーバーフローに注意してください。uint8_tの値は0〜255のいずれかです。8ビットの符号付きタイプに割り当てると、-128〜 + 127の値が表現され、127を超える元の値は突然負になります。実際に表示される可能性のある値を保持するのに十分な大きさのタイプを選択してください。int16_tは32767まで上がるので、安全です。

于 2012-08-18T21:11:38.170 に答える