您的位置:首页 > 编程语言 > C语言/C++

C++ 自然语言编码详解系列二(字符(串)的内存表示)

2007-12-24 14:16 405 查看

字符在内存中是怎样存储的

  单字节字符串:每个字符占一个字节按顺序依次存储,最后以单字节表示的0结束。例如。"Bob"的存贮形式如下:

426F6200
BobBOS
Unicode的存储形式,L"Bob"

42 00 6F 0062 0000 00
BobBOS
使用两个字节表示的0x0000来做结束标志。

  一眼看上去,DBCS 字符串很像 SBCS 字符串,但是我们一会儿将看到 DBCS 字符串的微妙之处,它使得使用字符串操作函数和永字符指针遍历一个字符串时会产生预料之外的结果。字符串"日本语 " ("nihongo")在内存中的存储形式如下(LB和TB分别用来表示 leading byte 和 trail byte)

93 FA96 7B8C EA00
LB TBLB TBLB TBEOS
EOS
值得注意的是,"ni"的值不能被解释成WORD型值0xfa93,而应该看作两个值93和fa以这种顺序被作为"ni"的编码。(So on a big-endian CPU, the bytes would still be in the order shown above.)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: