byte a = 'A';这样写对不对?
是不是byte中只能存放数据? --------------------编程问答-------------------- byte只能存放数字.byte就是字节,一个字节是8个2进制数.因为2进制最高为是符号为所以byte的范围是【-128,127 】 --------------------编程问答--------------------byte只能存放数字.byte就是字节,一个字节是8个2进制数.因为2进制最高为是符号位所以byte的范围是【-128,127 】 --------------------编程问答-------------------- char a = 'A' --------------------编程问答-------------------- 可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。 --------------------编程问答--------------------
错。Java里的char是两个字节的,跟C++里的不一样 --------------------编程问答--------------------
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
--------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
错。Java里的char是两个字节的,跟C++里的不一样
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
我意思是,byte a = 'A';也是不行的 --------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
错。Java里的char是两个字节的,跟C++里的不一样
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
我意思是,byte a = 'A';也是不行的
byte a = 'A';
System.out.println(a);
运行结果:65 --------------------编程问答--------------------
byte只能存放数字.byte就是字节,一个字节是8个2进制数.因为2进制最高为是符号为所以byte的范围是【-128,127 】
byte a = 'A';
System.out.println(a);
运行结果:65
应该是这样,65/A在byte表示范围之内,所以...
而在C++中char是一个字节,在java中只是对其进行扩充了一下,变成了两个字节。 --------------------编程问答--------------------
byte只能存放数字.byte就是字节,一个字节是8个2进制数.因为2进制最高为是符号为所以byte的范围是【-128,127 】
byte a = 'A';
System.out.println(a);
运行结果:65
应该是这样,65/A在byte表示范围之内,所以...
而在C++中char是一个字节,在java中只是对其进行扩充了一下,变成了两个字节。
char是两个字节 赋给byte型变量的时候 高位被截断? 但因为值比较小 所以无影响?
--------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
错。Java里的char是两个字节的,跟C++里的不一样
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
我意思是,byte a = 'A';也是不行的
byte a = 'A';
System.out.println(a);
运行结果:65
三观毁了,居然可以。。。 --------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
错。Java里的char是两个字节的,跟C++里的不一样
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
我意思是,byte a = 'A';也是不行的
byte a = 'A';
System.out.println(a);
运行结果:65
三观毁了,居然可以。。。
--------------------编程问答-------------------- Java的char是Unicode --------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
错。Java里的char是两个字节的,跟C++里的不一样
我知道char支持中文的。
兄台可以把LZ标题里的A替换成中文试试嘛~
我意思是,byte a = 'A';也是不行的
byte a = 'A';
System.out.println(a);
运行结果:65
三观毁了,居然可以。。。
其实也很简单 java中字符'A'是可以自动转换成int数字的.而且'A'转换成数字的值在-128和127之间所有是正确的.如果转换出来的数字在-128和127之外就错了.. 这个就能解释为什么是这样了.三观完好 --------------------编程问答-------------------- 打印一下不就知道了。 --------------------编程问答--------------------
可以的,为ASCII码值。
但是单引号里是中文字符就不行了,猜测是因为中文无法用ASCII表示的原因。
看图。
--------------------编程问答-------------------- byte 是整形的其中之一,赋值 只能是数字,整型 byte short int long 共四种,所以 你用单引号引起来 java 编译器是不会报错的 也是允许的不过 你要赋值的是数字 而不是其他。建议去我的博客网站www.taomaipin.com去看看java的四类八种基础数据类型 --------------------编程问答-------------------- 单引号的字母可以,只要其ascii值不超127。byte允许范围是-128-127. --------------------编程问答-------------------- 回28L,对带双引号的,也就是字符串,你可以查看byte.parseByte源代码,发现会调用Integer.parseInt转换该字符串,如果是在范围-128-127内,返回值,否则抛异常。
补充:Java , Java SE