Jon*_*eet 66
你不能,真的.除了以外,Java没有任何无符号数据类型char.
不可否认,你可以使用char- 它是一个16位无符号类型 - 但在我看来这很可怕,因为char显然是用于文本:当代码使用时char,我希望它用于表示文本的UTF-16代码单元这对程序很有意思,而不是与文本无关的任意无符号16位整数.
小智 12
这是一个非常陈旧的线程,但为了后来的任何人的利益.char是数字类型.它支持所有数学运算符,位操作等.它是无符号16.
我们处理由定制嵌入式硬件记录的信号,因此我们处理来自A-D的大量无符号16.我们多年来一直在使用这些地方的字符,从来没有遇到任何问题.
Tof*_*eer 10
你可以使用一个char,因为它是一个无符号的16位值(虽然从技术上来说它是一个unicode字符,因此将来可以改为24位值)...另一种选择是使用int并确保它在范围内.
不要使用char - 使用int :-)
这里有一个讨论Java和缺乏未签名的链接.
来自 DataInputStream.java
public final int readUnsignedShort() throws IOException {
int ch1 = in.read();
int ch2 = in.read();
if ((ch1 | ch2) < 0)
throw new EOFException();
return (ch1 << 8) + (ch2 << 0);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87224 次 |
| 最近记录: |