Java,bit比特,byte字节,char字符,short,int,long,float,double,string,字母,汉字/编码等

如题,做个重新认识的总结,只供参考,如果不准确的,请回复,谢谢


bit: 1 bit位 = 1 二进制数据

byte: 1 byte = 8 bit位 (-128 ~ 127)

字母: 1 字母 = 1 byte = 8 bit(位)

short: 16位

char: Unicode字符,16bit位

int: 32bit位,比如int 类型占用4个字节,32位

long: 64bit位

float: 32bit位

double: 64bit位

string:

汉字:1 汉字 = 2 byte = 16 bit 

《《***这里不是很准确,当编码不同的时候,1个汉字所占的字节数也会有所不同,有些编码是占 2个字节,有些则不是,可能是 3个或者 4个***》》

首先认识下Java中的数据类型1、Int整型:byte(8位,-128~127)、short(16位)、int(32位)、long(64位)
2、Float型:float(32位)、double(64位)
3、char字符:unicode字符(16位)



下面参考了这篇文章:

char与byte的区别:http://blog.csdn.NET/luoweifu/article/details/7770588


byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127;

char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是065535;

char是一个16位二进制的Unicode字符,Javachar来表示一个字符 

1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127 的数;如:

[java]  view plain  copy
  1. char c = (char) -3// char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别  
  2. System.out.println(c); //?  
  3. byte d1 = 1;  
  4. byte d2 = -1;  
  5. byte d3 = 127// 如果是byte d3 = 128;会报错  
  6. byte d4 = -128// 如果是byte d4 = -129;会报错  
  7. System.out.println(d1); //1  
  8. System.out.println(d2); //-1  
  9. System.out.println(d3); //127  
  10. System.out.println(d4); //-128  

2、 char可以表中文字符,byte不可以,如:

[java]  view plain  copy
  1. char e1 = '中', e2 = '国';  
  2. byte f= (byte'中'//必须强制转换否则报错  
  3. System.out.println(e1); //中  
  4. System.out.println(e2); //国  
  5. System.out.println(f); //输出是45,这时已经不是能完全代表汉字中了,是把 中 这个字低位字节赋值给f了  
  6. System.out.println((char)f); //输出是 -,可以看到把汉字 中 转到 f byte,在从 f转回 char型,已经丢失了高位字节  

3、 char、byteint对于英文字符,可以相互转化,如:

[java]  view plain  copy
  1. byte g = 'b';   //b对应ASCII是98  
  2. char h = (char) g;  
  3. char i = 85;    //U对应ASCII是85  
  4. int j = 'h';    //h对应ASCII是104  
  5. System.out.println(g); //98  
  6. System.out.println(h); //b  
  7. System.out.println(i); //U  
  8. System.out.println(j); //104  

如题,做个重新认识的总结,只供参考,如果不准确的,请回复,谢谢


bit: 1 bit位 = 1 二进制数据

byte: 1 byte = 8 bit位 (-128 ~ 127)

字母: 1 字母 = 1 byte = 8 bit(位)

short: 16位

char: Unicode字符,16bit位

int: 32bit位,比如int 类型占用4个字节,32位

long: 64bit位

float: 32bit位

double: 64bit位

string:

汉字:1 汉字 = 2 byte = 16 bit 

《《***这里不是很准确,当编码不同的时候,1个汉字所占的字节数也会有所不同,有些编码是占 2个字节,有些则不是,可能是 3个或者 4个***》》

首先认识下Java中的数据类型1、Int整型:byte(8位,-128~127)、short(16位)、int(32位)、long(64位)
2、Float型:float(32位)、double(64位)
3、char字符:unicode字符(16位)



下面参考了这篇文章:

char与byte的区别:http://blog.csdn.NET/luoweifu/article/details/7770588


byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127;

char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是065535;

char是一个16位二进制的Unicode字符,Javachar来表示一个字符 

1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127 的数;如:

[java]  view plain  copy
  1. char c = (char) -3// char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别  
  2. System.out.println(c); //?  
  3. byte d1 = 1;  
  4. byte d2 = -1;  
  5. byte d3 = 127// 如果是byte d3 = 128;会报错  
  6. byte d4 = -128// 如果是byte d4 = -129;会报错  
  7. System.out.println(d1); //1  
  8. System.out.println(d2); //-1  
  9. System.out.println(d3); //127  
  10. System.out.println(d4); //-128  

2、 char可以表中文字符,byte不可以,如:

[java]  view plain  copy
  1. char e1 = '中', e2 = '国';  
  2. byte f= (byte'中'//必须强制转换否则报错  
  3. System.out.println(e1); //中  
  4. System.out.println(e2); //国  
  5. System.out.println(f); //输出是45,这时已经不是能完全代表汉字中了,是把 中 这个字低位字节赋值给f了  
  6. System.out.println((char)f); //输出是 -,可以看到把汉字 中 转到 f byte,在从 f转回 char型,已经丢失了高位字节  

3、 char、byteint对于英文字符,可以相互转化,如:

[java]  view plain  copy
  1. byte g = 'b';   //b对应ASCII是98  
  2. char h = (char) g;  
  3. char i = 85;    //U对应ASCII是85  
  4. int j = 'h';    //h对应ASCII是104  
  5. System.out.println(g); //98  
  6. System.out.println(h); //b  
  7. System.out.println(i); //U  
  8. System.out.println(j); //104  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值