bytecharjava
① java中byte与char的问题。
byte是字节数据类型,是有符号型的,占1个字节;大小范围为-128—127。
char是字符数据类型,是无符号型的,占2字节(Unicode码);大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符。
区别:
1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127的数;
2、char可以表中文字符,byte不可以;
3、char、byte、int对于英文字符,可以相互转化
对于你上面说的最后会出异常是因为你不能通过while对DataInputStream 无限制的读取,DataInputStream 内容读取完了之后就没有数据可读,固然会报错。
你应该先判断DataInputStream 是否可用,只有在可用的情况下能继续读取,应该改成:
DataInputStreamdi=newDataInputStream(newByteArrayInputStream(
s.getBytes()));
while(di.available()>0){
System.out.print((char)di.readByte());
}
文章参考:http://blog.csdn.net/luoweifu/article/details/7770588
② java中byte型和char型有什么区别
byte字节型,char字符型。1个byte是1个字节,java采用unicode,2个字节(16位)来表示一个字符
再看看别人怎么说的。
③ java 怎么由byte转换为char
强制转换就可以。
int len=bytes.length;
char [] arr=new char[len];
for(int i=0; i<len; i++){
arr[i] = bytes[i];
}
④ byte怎么转换为char
这是计算机中存储信息的单位。char是字符型byte是字节型(0-255)在参与算术运算是char类型会自动转为整型;如字符A会转为对应ASCII码65.char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。
而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。byte类型是最自由的一种。
它就占用一个字节,但没有定义这个字节拿来干什么。char定义为一个UnsignedByte类型。也就是无符号的一个字节。它将一个字节的8位全占用了。
表示的数据范围是0到255之间。你确定处理的字符串是标准的ANSI字符串,那不必转换也可以直接一个字节一个字节地处理。要处理的字符串不定或是统一的Unicode字符串则要进行转换后进行处理。
(4)bytecharjava扩展阅读:
字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。
ASCII码:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制 ,最小值-128,最大值127。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。
任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。
例如,以 4 个 2字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。
参考资料来源:网络-Byte
⑤ char和byte是一个意思
char和byte这两种数据类型容易相互混淆,他们的区别主要如下:
1、数据类型不同
byte是字节数据类型,是有符号型的,可以表示-128—127的数;
char是字符数据类型,是无符号型的,可以表示一个整数,不能表示负数。
用法举例:
chari=85;//U对应ASCII是85
byted3=127;//如果是byted3=128;会报错
byted4=-128;//如果是byted4=-129;会报错
2、占用空间大小和大小范围不同
byte占1个字节;大小范围为-128—127 ;
char占2字节(Unicode码);大小范围是0—65535;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符。
3、另外char可以表示中文字符,byte不可以。用法举例:
chare1='中',e2='国';
bytef=(byte)'中';//必须强制转换否则报错
⑥ 关于java中byte和char类型的问题
char 与 byte为两种不同类型的变量,虽然他们的大小都为1个字节,但是在Java中不可以自动转换,这个是Java编译器类型检查比较严格,不允许隐式转换,在C中则允许隐式转换。这个不是大问题,记下来就行了。
⑦ java 详细介绍short,byte,char三种类型,我分不清
byte:byte在java中占据一个字节即用8位bit表示,因为是有符号数,所以它的表示范围是-128-127.如果在运算过程中超出了范围限制就出现溢出。
char:char在java中占据两个字节,即用16位表示一个char类型的数据。由于char是无符号的所以其表示范围是0-65536.当计算超过其表示范围时,系统会自动将结果转换为int类型。
short:short在java中占据两个字节也是由16位表示,因为short是有符号数据故其表示范围是-32768-32767
根据需要可用来节省内存的使用。
⑧ java里面的char和byte怎么转换
java中,char转化为byte的话,可以用参考如下方法:
String s=new String("1");
byte[] b=new byte[1];
b[0] = Byte.parseByte(""+s.charAt(0));
System.out.println(b[0]);
结果为:1,而不是ascii码的值了。