我对字符的认识正确吗?

一个字符对应10进制0到255中的一个数字,一个字符对应2进制0到11111111中的一个数字,字符的总数不超过255种。字符以2进制的值在内存中存储。我发现1个字节也就是8位2进制的最大值11111111对应10进制的255,这两者应该有关系吧。也就是说2进制0到11111111中的每个数对应10进制0到255中的一个数,对应一个字符。因为字符的总数不超过255种,2进制0到11111110就有255个数,每个数对应一个字符,所以
一个字节(8位2进制)足够放一个字符。一个字符也就对应一个字节。
上面我说的正确吗?希望大家帮忙看看。

如果你说的是ASCII编码,那你的理解基本是对的,但是字符的编码不止是一种,还有其他的,比如汉字编码他和ASCII编码就不一样,ASCII编码是英文字符编码,占用一字节,而汉字编码普遍都是两个字节,当然还有于网络相关的其他编码方式,占用更多字节。
还有你没必要弄得那么复杂,ASCII编码里面就是一个字符对应一个响应的十进制数,而电脑他只识别2进制。存储到电脑内存里面肯定是要转换成2进制的。所以你只要知道十进制和二进制转换方法就好了。当然要注意用编译器查看内存。看到的是16进制数,所以还要知道16转2和16转10的方法,自己多看看书就好了。这些书上都有介绍追问

恩。我看的是ASCII编码字符,我以为汉字不是字符,一个汉字算一个字符吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-17
你的理解基本不正确。请点鼠标右键,菜单里选查看网页源代码,最上面你可以找到charset=gb2312,这是告诉你百度知道的这个网页用的字符编码是gb2312

在实际项目的开发中,凡是和网络打交道的地方,你都会遇到各种不同的编码,这些编码可能是1字节,2字节,4字节不定等等。比如老板让你为某个网站开发一个功能,你用你之前的理解的一个字符也就对应一个字节方式进行字符编码,那你做出来的网页全是乱码,老板会炒你的鱿鱼。

编码是很复杂的问题,现在国际上用的最多的是Unicode字符编码,用数字0-0x10FFFF来表示,国内用得较多的是gb开头的几种编码。具体请看:http://baike.baidu.com/view/40801.htm追问

你是说比如,一个汉字是两个字节,一个汉字可以看成一个字符,所以字符可以是两个字节的吗?

追答

一个汉字是两个字节,就是用2个字节的数字来编码,但是编码方式不同,同一个汉字对应的这2个数字是不同的。比如gb2312和gb18030就不同。

字符可以是2个字节,但并不是说所有的字符都是2字节,unicode的编码里的字符有1字节,2字节,4字节不等。建议你去wiki百科里搜索unicode,里面学问可大了。

本回答被提问者采纳
第2个回答  2012-05-16
ASCII码表完整版
ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96 、
1 SOH 33 ! 65 A 97 a
2 STX 34 ” 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 X 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 ~
31 US 63 ? 95 — 127 DEL
相似回答