同じビット構造でCharをshortに変更したい。どちらも16ビットです
ショートは2の補数であり、1の補数であれば使用できることを理解しています
if a < 0 {return (short) math.abs a + 2 ^ 15;} else {return (short) a;} //right?
これを2秒補数ネガティブにするにはどうすればよいですか?
整数と同じように、文字の内部を操作できるようにしたいだけです。
答えが1つ追加するだけの場合、私は感情的になります:)
同じビット構造でCharをshortに変更したい。どちらも16ビットです
ショートは2の補数であり、1の補数であれば使用できることを理解しています
if a < 0 {return (short) math.abs a + 2 ^ 15;} else {return (short) a;} //right?
これを2秒補数ネガティブにするにはどうすればよいですか?
整数と同じように、文字の内部を操作できるようにしたいだけです。
答えが1つ追加するだけの場合、私は感情的になります:)
簡単な解決策は、
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;