c语言对中文字符串按字节读,用printf %x输出全都是前六位是f的八位十六进制数字,为什么?

 我来答
charleszhangji
2016-09-26 · TA获得超过4556个赞
知道小有建树答主
回答量:887
采纳率:0%
帮助的人:990万
展开全部
这个是因为中文字符的编码方式和ascii是不一样的,你用的是gbk编码方式,每个中文汉字是两个字节,且编码上高位的字节都是1,这是编码表上设定好的,如果采用utf8编码,那么又是另外一套编码方式,输出也会不一样
追问
不是应该是2位16进制么,怎么会是8位的
追答
在64位的计算机内部会转为64位整数,这些编码上高位都是1,所以输出有很多f
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式