现在的位置: 首页 > 综合 > 正文

char byte base64 区别

2018年06月10日 ⁄ 综合 ⁄ 共 1054字 ⁄ 字号 评论关闭

一、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码 );大小范围 是065535 ;char是一个16位二进制的Unicode字符,JAVAchar来表示一个字符 。当然也可以表示汉字啦。

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算法将三个字符编码为4个字符

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的编码。

 

 

抱歉!评论已关闭.