一、C语言中char byte区别
char 占一个字节,分为signed char 有符合的字符型和unsigned char无符号的字符型,取值范围-128~127 和0-255,没有说明的时候指有符号的,左边第一位为0则为正,1则为负。
ascii码占用一个字节,取值范围0~255,不同的值对应不同的字符,因此无符号的字符型对应ascii码。
c语言没有内定的byte类型,但一般定义为unsigned char,如:typedef unsigned char byte
计算机内都是存储的二进制数据,根据定义的类型,把具体的值转换为响应的变量,如二进制的值为01000001-》65-》字符A。
二、java语言char byte区别
char 是字符数据类型 ,是无符号型的,占2字节(Unicode码);大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。当然也可以表示汉字啦。
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。
java中的转换:
String str = "Hello world!";
// string转byte
byte[] bs = str.getBytes();
// byte转string
String str2 = new String(bs)
三、base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。
Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。
编码“Man”
文本
M
a
n
ASCII编码
77
97
110
二进制位
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
索引
19
22
5
46
Base64编码
T
W
F
u
在此例中,Base64
Base64索引表:
Value
Char
Value
Char
Value
Char
Value
Char
0
A
16
Q
32
g
48
w
1
B
17
R
33
h
49
x
2
C
18
S
34
i
50
y
3
D
19
T
35
j
51
z
4
E
20
U
36
k
52
0
5
F
21
V
37
l
53
1
6
G
22
W
38
m
54
2
7
H
23
X
39
n
55
3
8
I
24
Y
40
o
56
4
9
J
25
Z
41
p
57
5
10
K
26
a
42
q
58
6
11
L
27
b
43
r
59
7
12
M
28
c
44
s
60
8
13
N
29
d
45
t
61
9
14
O
30
e
46
u
62
+
15
P
31
f
47
v
63
/
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。