windows程序设计04_显示汉字的16进制
看下面的代码
//utf-8编码
#include<stdio.h>
int main() {
char a[] = "中国";
printf("%x\n", a[0]);
getchar();
return 0;
}
这个输出什么?不知道大家怎么想,我的第一感觉是输出汉字"中"的第1个字节的16进制.但用VS运行,输出的是:
ffffffd6
4个字节,不是1个字节.为什么?
通过调试,"中"在内存里是D6D0,这其实是"中"的GB2312编码。
a[0]对应的字节是D6,二进制是11010110
vs的char是有符号的,内存中以补码表示数值。
补码11010110对应的反码是11010101
补码11010110对应的原码是10101010,原码10101010对应的10进制是-42
printf把-42强转成有符号的32位int
-42的原码是10000000000000000000000000101010
-42的反码是11111111111111111111111111010101
-42的补码是11111111111111111111111111010110
补码11111111111111111111111111010110对应的16进制就是ffffffd6
windows程序设计04_显示汉字的16进制的更多相关文章
- C# 中关于汉字与16进制转换的代码
/// <summary> /// 从汉字转换到16进制 /// </summary> /// <param name="s"></par ...
- java中将汉字转换成16进制
技术交流群:233513714 /** * 将汉字转换车16进制字符串 * @param str * @return st */ public static String enUnicode(Stri ...
- 以16进制打印出一块内存buff
如下代码(支持windows与Linux)会以[16进制][每行16字节]打印出一块内存的内容: void PrintBuffer(void* pBuff, unsigned int nLen) { ...
- linux以16进制查看文件
vim 先用vim -b data 以2进制打开文件,然后用xxd工具转化,在vim的命令行模式下: :%!xxd --将当前文本转化为16进制格式 :%!xxd -r --将16 ...
- C#把汉字转换成16进制(HEX)并向串口发送数据
报警器实例:(有发送,无返回获取) using System; using System.Collections.Generic; using System.Linq; using System.Te ...
- pyserial 16进制显示与发送
pyserial 16进制显示与发送 http://www.centoscn.com/python/2013/0817/1320.html 十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCI ...
- Java中将16进制字符串转换成汉字
技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...
- c# 字符串(含有汉字)转化为16进制编码(转)
public static string Str2Hex(string s) { string result = string.Empty; byte[] arrByte = System.Text. ...
- c# 16进制显示转化
非原创. 接收16进制数据,在TextBox委托显示: private void readPortandShow() { char[] HexChar = { '0', '1', '2', '3', ...
随机推荐
- 详细讲解 Redis 的两种安装部署方式
Redis 是一款比较常用的 NoSQL 数据库,我们通常使用 Redis 来做缓存,这是一篇关于 Redis 安装的文章,所以不会涉及到 Redis 的高级特性和使用场景,Redis 能够兼容绝大部 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 树莓派debian配置lamp[解决Apache不显示php网页]
Apache + MySql + Php. 1.安装Apache Apache可以用下面的命令来安装 sudo apt-get install apache2 Apache默认路径是/var/www/ ...
- ThinkPHP 怎样让URL访问的时候省略 index.php
ThinkPHP 怎样让URL访问的时候省略 index.php Nginx 服务器配置 修改 nginx.conf 文件 location / { // …..省略部分代码 if (!-e $req ...
- Activity生命周期理解
在Android应用程序运行时,Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶.随着应用程序之间的切换.关闭等,每个Activity都有可 ...
- firefox浏览器中使用vux的x-input报错TypeError: _this3.$refs.input.scrollIntoViewIfNeeded is not a function
最近做公众号项目,想着统一风格,所以决定使用vux. 在调试时发现,只要鼠标点击x-input输入框,就会报错 TypeError: _this3.$refs.input.scrollIntoView ...
- Oracle '26-2月 -19 03.34.47.000000 下午' 字符串日期解析
Oracle数据库, 时间字段是varchar2类型, 存储了 '26-2月 -19 03.34.47.000000 下午' 格式(TIMESTAMP 数据类型)的字符串日期, 将其解析为yyyy-M ...
- 20191010-7 alpha week 1/2 Scrum立会报告+燃尽图 05
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8750 一.小组情况 队名:扛把子 组长:迟俊文 组员:宋晓丽 梁梦瑶 韩 ...
- Dart Learn Notes 02
Functions Dart是一门面向对象的语言,所以即便是方法也是一个对象,它的类型是Function. 这就意味着方法可以指向变量,也可以作为方法中的参数供其他方法使用.甚至可以让 一个类作为一个 ...
- java path
static{ String path = new Object(){ public String getPath() { return this.getClass().getResource(&qu ...