public
class
ByteTest {
/**
* byte 8 bits -128 - + 127
* 1 bit = 1 二进制数据
* 1 byte = 8 bit
* 1 字母 = 1 byte = 8 bit(位)
* 1 汉字 = 2 byte = 16 bit
*/
public
static
void
main(String[] args) {
// TODO Auto-generated method stub
byte
b1 =
127
;
byte
b2 = -
128
;
byte
b3 =
'a'
;
byte
b4 =
'A'
;
// 一个字母 = 1 byte = 8 bit
// byte b5 ='aa'; 这就错了
// byte b6 ='中'; 这就错了 一个汉字 2个字节 16bit
short
s1 =
'啊'
;
// 一个汉字 2个字节 16bit short 是 16 bit位的
// short s2 = '汉字'; // 2个汉字 4个字节 32 bit int 是32 bit的
// int i1 = '汉字'; 但是 int 是数字类型的 , char 是 16 bit的 = 2 byte = 一个汉字
char
c1 =
'汗'
;
// byte 转换 string
String string =
"中文"
;
byte
by[] = string.getBytes();
String str =
new
String(by);
System.out.println(
"str="
+str);
}
}
==================================================================================
[Java-原创] bit、
byte
、位、字节、汉字、字符
bit、
byte
、位、字节、汉字的关系
1
bit =
1
二进制数据
1
byte
=
8
bit
1
字母 =
1
byte
=
8
bit
1
汉字 =
2
byte
=
16
bit
1
. bit:位
一个二进制数据
0
或
1
,是1bit;
2
.
byte
:字节
存储空间的基本计量单位,如:MySQL中定义 VARCHAR(
45
) 即是指
45
个字节;
1
byte
=
8
bit
3
. 一个英文字符占一个字节;
1
字母 =
1
byte
=
8
bit
4
. 一个汉字占
2
个字节;
1
汉字 =
2
byte
=
16
bit
5
. 标点符号
A>. 汉字输入状态下,默认为全角输入方式;
B>. 英文输入状态下,默认为半角输入方式;
C>. 全角输入方式下,标点符号占
2
字节;
D>. 半角输入方式下,标点符号占
1
字节;
故:汉字输入状态下的字符,占
2
个字节 (但不排除,自己更改了默认设置);
英文输入状态下的字符,占
1
个字节 (但不排除,自己更改了默认设置);