C语言中,双字节 *** 作问题,

C语言中,双字节 *** 作问题,,第1张

在C语言中除了字符类型(char)是固定的1字节,其它类弄基本要看你的系悉渗统而定睁槐脊,

有些系统明枯(整型)int是2字节,而有些是4字节.

如是两字节就可以

int x

x=x/500

// 题主这个问题嘛,问的很有问题

// 计算机一般有两种文字储存方式,宽字节+多字

// 宽字节:用2或4个字节表示一个字(每种类型固定字节长度)

// USC-2, USC-4

// 多字罩答节:用1到4个字节表示一个字(每种字用的字节不一样)

// GBK, BIG5, UTF-8

两个单字节变为一个双字节,意味着这两个单字节其物团慧实是一个双字节能表达的字符的分别字节?

// 假设是这样的

/* 以GBK为例子,嗯,微软默认控制台或禅内码为GBK */

比如“我”字,你得先查到内码为:CED2

从下面可以查....当然百度一下到处都是

http://www.mytju.com/classcode/tools/encode_gb2312.asp

// 然后发现,这个是多字节编码,所以不考虑大小端

unsigned char a[3]

a[0] = 0xCE a[1] = 0xD2 a[3] = 0x0

printf(a) 就可以了

/* 以USC-2为例子 */

查到“我”编码是0x6211

考虑到intel处理器都是小端(与我大摩托罗拉对着干)

unsigned char a[4]

a[0] = 0x11 a[1] = 0x62 a[2] = 0x0 a[3] = 0x0

wprintf((wchar_t *)a) 就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12220284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存