0

同じビット構造でCharをshortに変更したい。どちらも16ビットです

ショートは2の補数であり、1の補数であれば使用できることを理解しています

if a < 0 {return (short) math.abs a + 2 ^ 15;} else {return (short) a;} //right?

これを2秒補数ネガティブにするにはどうすればよいですか?

整数と同じように、文字の内部を操作できるようにしたいだけです。

答えが1つ追加するだけの場合、私は感情的になります:)

4

1 に答える 1

5

簡単な解決策は、

char ch = ...
short s = (short) ch;
char ch2 = (char) s;
// ch == ch2

おそらく、実際よりも複雑にならなければならないと想像するでしょう ;)

Integer と同じように Char の内部を操作できるようにしたいだけです。

その場合、 さえ必要なく、さらに単純な がshort必要です。int

例えば

// sum all the chars of a string
String s = "Hello World";
int sum = 0;
for(char ch: s.toCharArray())
    sum += ch;

答えが一つ足すだけなら 感情的になる

いいえ、それ以下です。:j

ところで、あなたができること

char ch = 'A';
int i = ch + 0;
int j = ch;
于 2013-02-01T16:39:40.920 に答える