我想将Char改为具有相同位结构的short。两者都是16位
我知道短的是2的补码,如果它们是1的补码,我可以使用
if a < 0 {return (short) math.abs a + 2 ^ 15;} else {return (short) a;} //right?如何对2s补码进行否定?
我只是希望能够像处理Integer一样操作Char的内部结构。
如果答案是只加一个,我就会变得情绪化:)
发布于 2013-02-02 00:39:41
简单的解决方案是这样做
char ch = ...
short s = (short) ch;
char ch2 = (char) s;
// ch == ch2也许您认为它必须比实际情况更复杂;)
我只是希望能够像处理整数一样操作
的内部结构。
在这种情况下,你甚至不想要一个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;https://stackoverflow.com/questions/14650889
复制相似问题