java 中的 char 类型de疑问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中的 char 类型de疑问相关的知识,希望对你有一定的参考价值。

书上说short类型是16位的,char类型也是16位的,但是前者的表示范围是-32768~32767,char的表示范围怎么是0~255呢?如果只能表示0~255,那么怎么存放这么多汉字啊?
对啊,我知道只能存一个汉字,问题是char的范围如果是0~255,难道就char只能表示256个汉字吗??

char的表示范围怎么是0~255呢 ——这个肯定不对。char是正数,是对的。
Java的字符类型采用的是UTF-16编码方式对Unicode编码表进行表示。其中一个char类型固定2Bytes(16bits)。
你用二进制表示看看是多少追问

如何用2进制看呢

追答

二进制这样

1111111111111111
再转成10进制看看是多少

追问

也就是可以表示0-65535?

参考技术A 只能存放一个汉字。。存放多个汉字就成为一个char的数组了。。。。String类型就是CHar类型的数组。 参考技术B chart 只能存一个汉字

c++中关于char与cin的疑惑

char的声明有点疑问
比如 char c;
cin>>c;
此时为什么可以输入很多 比如输入 abcdefghi char类型不是不能接受字符串类型吗,因为c不是char数组,再说输入的也不是一个字符,对char来说很长啊。

其次 当再次使用
cin>>c;
的时候读取一个字符,为什么cin每次只读取一个字符啊,上面这些把我搞混了,请大家指点

因为你在输入的时候,只是输入到缓存,并没有传给变量C。
当按回车传给变量C的时候多余的就会被抛弃并报错。追问

并没有抛弃并报错啊

参考技术A 因为c是字符型变量,每次只会输入一个给变量c。
如果你想输入一串字符(如abcdef),可以使用数组指针
(如
define N 6;
char c[N];
for(i=0;i<N;i++)
cin>>c[0];

这样字符串输入成功,输出亦然。
参考技术B 感觉这跟c语言的getchar很像:
两者都是读入一个字符串,但是只把字符串的第一个字符传给变量
你输入abcdefghi,那么char就是a
参考技术C 你 cout 下看看是什么样子的....

以上是关于java 中的 char 类型de疑问的主要内容,如果未能解决你的问题,请参考以下文章

Java 初次再体验 带着疑问思考基本数据类型和数组及我为啥子要学Java 及运算等等 就是那个啥Java和别的语言都要干的事 基本计算0-0

c++中关于char与cin的疑惑

Java中的char占用几个字节

Java泛型疑问之super和extendS

MySQL的float和decimal的区别疑问

oracle数据库中的number数据类型疑问