package com.suypower.chengyu.test; |
02 |
03 | public class ByteTest { |
04 |
05 | /** |
06 | * byte 8 bits -128 - + 127 |
07 | * 1 bit = 1 二进制数据 |
08 | * 1 byte = 8 bit |
09 | * 1 字母 = 1 byte = 8 bit(位) |
10 | * 1 汉字 = 2 byte = 16 bit |
11 | */ |
12 | public static void main(String[] args) { |
13 | // TODO Auto-generated method stub |
14 | byte b1 = 127 ; |
15 | byte b2 = - 128 ; |
16 | byte b3 = 'a' ; |
17 | byte b4 = 'A' ; // 一个字母 = 1 byte = 8 bit |
18 | // byte b5 ='aa'; 这就错了 |
19 | // byte b6 ='中'; 这就错了 一个汉字 2个字节 16bit |
20 | short s1 = '啊' ; // 一个汉字 2个字节 16bit short 是 16 bit位的 |
21 | // short s2 = '汉字'; // 2个汉字 4个字节 32 bit int 是32 bit的 |
22 | // int i1 = '汉字'; 但是 int 是数字类型的 , char 是 16 bit的 = 2 byte = 一个汉字 |
23 | char c1 = '汗' ; |
24 | // byte 转换 string |
25 | String string = "中文" ; |
26 | byte by[] = string.getBytes(); |
27 | String str = new String(by); |
28 | System.out.println( "str=" +str); |
29 | } |
30 |
31 | } |
32 | ================================================================================== |
33 |
34 | [Java-原创] bit、 byte 、位、字节、汉字、字符 |
35 | bit、 byte 、位、字节、汉字的关系 |
36 |
37 |
38 | 1 bit = 1 二进制数据 |
39 | 1 byte = 8 bit |
40 | 1 字母 = 1 byte = 8 bit |
41 | 1 汉字 = 2 byte = 16 bit |
42 |
43 |
44 | 1 . bit:位 |
45 | 一个二进制数据 0 或 1 ,是1bit; |
46 |
47 | 2 . byte :字节 |
48 | 存储空间的基本计量单位,如:MySQL中定义 VARCHAR( 45 ) 即是指 45 个字节; |
49 | 1 byte = 8 bit |
50 |
51 | 3 . 一个英文字符占一个字节; |
52 | 1 字母 = 1 byte = 8 bit |
53 |
54 | 4 . 一个汉字占 2 个字节; |
55 | 1 汉字 = 2 byte = 16 bit |
56 |
57 | 5 . 标点符号 |
58 | A>. 汉字输入状态下,默认为全角输入方式; |
59 | B>. 英文输入状态下,默认为半角输入方式; |
60 |
61 | C>. 全角输入方式下,标点符号占 2 字节; |
62 | D>. 半角输入方式下,标点符号占 1 字节; |
63 |
64 | 故:汉字输入状态下的字符,占 2 个字节 (但不排除,自己更改了默认设置); |
65 | 英文输入状态下的字符,占 1 个字节 (但不排除,自己更改了默认设置); |
66 |
67 |
68 |
69 | 老美在发明电脑时,肯定以自己的英文字母--即他们自认为的字符为最小的存储计量单位,于是也就有了不规范的 1 字符=1byte, 岂不知还有我们伟大的汉字计量单 |
70 | 位,NND,一个汉字也是一个字符,我们的 1 汉字字符就等于2byte,后来,他们可能意识到这个尴尬的问题,于是又标榜为:一个字母为一个标准字符,去球吧,谁 |
71 | 整天没事说个字符还“标准字符”,所以啊,个人认为:字符,不能用于标准的计量单位。 |