Java中的bit、byte、字母、汉字之间的关系

来源:互联网 发布:python argparse 编辑:程序博客网 时间:2024/06/05 22:44
package com.jadyer.demo;/** * Java中的位,字节,字母,汉字之间的关系 * @see ==================================================== * @see 1 bit  = 1 二进制数据 * @see 1 byte = 8 bit (范围:-128到+127) * @see 1 字母 = 1 byte = 8 bit * @see 1 汉字 = 2 byte = 16 bit * @see ==================================================== * @author 玄玉<http://blog.csdn/net/jadyer> * @create Aug 20, 2012 10:28:20 AM */public class ByteDemo {/** * @see 控制台打印结果,如下 * @see 4 * @see 4 * @see ---------------------------- * @see str=ABab * @see 65 * @see 66 * @see 97 * @see 98 * @see ---------------------------- * @see name=玄玉 * @see -48 * @see -2 * @see -45 * @see -15 * @see ---------------------------- */@SuppressWarnings("unused")public static void main(String[] args) {//byte bb11 = 128;  //cannot convert from int to byte//byte bb22 = -129; //cannot convert from int to bytebyte bb11 = 127;byte bb22 = -128;byte bb33 = 56;//byte bb44 = '玄'; //错误,因为: 1汉字==2字节//byte bb55 = 'bb'; //错误,因为: 'bb'==2字节byte bb44 = 'b';byte bb55 = 'B';byte bb66 = 'Z';//int i11 = "玄玉";  //1 int = 32 bit, but int is numeral//short ss = '玄玉'; //1 short = 2 byte = 16 bit = 1 汉字short ss11 = '玄';//char cc11 = '玄玉'; //这样是不可以的//char cc22 = 'cc';  //这样是不可以的char cc11 = '玄';char cc22 = 'c';String str = "ABab";byte[] data = str.getBytes();System.out.println(str.length());System.out.println(data.length);System.out.println("----------------------------");System.out.println("str=" + new String(data));for(int i=0; i<data.length; i++){System.out.println(data[i]);}System.out.println("----------------------------");byte[] name = "玄玉".getBytes();System.out.println("name=" + new String(name));for(int i=0; i<name.length; i++){System.out.println(name[i]);}System.out.println("----------------------------");}}