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


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

  1. package com.jadyer.demo;  
  2.   
  3. /** 
  4.  * Java中的位,字节,字母,汉字之间的关系 
  5.  * @see ==================================================== 
  6.  * @see 1 bit  = 1 二进制数据 
  7.  * @see 1 byte = 8 bit (范围:-128到+127) 
  8.  * @see 1 字母 = 1 byte = 8 bit 
  9.  * @see 1 汉字 = 2 byte = 16 bit 
  10.  * @see ==================================================== 
  11.  * @author 玄玉<http://blog.csdn/net/jadyer> 
  12.  * @create Aug 20, 2012 10:28:20 AM 
  13.  */  
  14. public class ByteDemo {  
  15.     /** 
  16.      * @see 控制台打印结果,如下 
  17.      * @see 4 
  18.      * @see 4 
  19.      * @see ---------------------------- 
  20.      * @see str=ABab 
  21.      * @see 65 
  22.      * @see 66 
  23.      * @see 97 
  24.      * @see 98 
  25.      * @see ---------------------------- 
  26.      * @see name=玄玉 
  27.      * @see -48 
  28.      * @see -2 
  29.      * @see -45 
  30.      * @see -15 
  31.      * @see ---------------------------- 
  32.      */  
  33.     @SuppressWarnings("unused")  
  34.     public static void main(String[] args) {  
  35.         //byte bb11 = 128;  //cannot convert from int to byte   
  36.         //byte bb22 = -129; //cannot convert from int to byte   
  37.         byte bb11 = 127;  
  38.         byte bb22 = -128;  
  39.         byte bb33 = 56;  
  40.           
  41.         //byte bb44 = '玄'; //错误,因为: 1汉字==2字节   
  42.         //byte bb55 = 'bb'; //错误,因为: 'bb'==2字节   
  43.         byte bb44 = 'b';  
  44.         byte bb55 = 'B';  
  45.         byte bb66 = 'Z';  
  46.           
  47.         //int i11 = "玄玉";  //1 int = 32 bit, but int is numeral   
  48.         //short ss = '玄玉'; //1 short = 2 byte = 16 bit = 1 汉字   
  49.         short ss11 = '玄';  
  50.           
  51.         //char cc11 = '玄玉'; //这样是不可以的   
  52.         //char cc22 = 'cc';  //这样是不可以的   
  53.         char cc11 = '玄';  
  54.         char cc22 = 'c';  
  55.           
  56.         String str = "ABab";  
  57.         byte[] data = str.getBytes();  
  58.         System.out.println(str.length());  
  59.         System.out.println(data.length);  
  60.         System.out.println("----------------------------");  
  61.           
  62.         System.out.println("str=" + new String(data));  
  63.         for(int i=0; i<data.length; i++){  
  64.             System.out.println(data[i]);  
  65.         }  
  66.         System.out.println("----------------------------");  
  67.           
  68.         byte[] name = "玄玉".getBytes();  
  69.         System.out.println("name=" + new String(name));  
  70.         for(int i=0; i<name.length; i++){  
  71.             System.out.println(name[i]);  
  72.         }  
  73.         System.out.println("----------------------------");  
  74.     }  
  75. }  

相关内容