python内十六进制形式下的'0x2d'和'\x2d'如何理解,0x2dx2d,如题,这两种表示方法有什
python内十六进制形式下的'0x2d'和'\x2d'如何理解,0x2dx2d,如题,这两种表示方法有什
如题,这两种表示方法有什么区别。都在什么情况下使用
'0x20' 是一个 multi-character character constant 它对应的值是0x30783230
(注: '0' 'x' '2' 的 ascii 码分别是 0x30 0x78 0x32)
'\x20' 是一个 char 它的值是0x20
(注: '\x[0-9a-fA-F]{1,2}' 用16进制表示一个char 比如 '\xFF' '\[0-7]{1,3}' 用8进制表示一个char 比如 '\100' )
$ cat 1.c
#include <stdio.h>int main() { int a = '0x20'; int b = '\x20'; printf("a = 0x%x\n", a); printf("b = 0x%x\n", b); return 0;}
$ gcc -Wall 1.c
1.c:4:11: warning: multi-character character constant [-Wmultichar] int a = '0x20'; ^
$ ./a.out
a = 0x30783230b = 0x20
'\x2d' 主要是用来表是一个不能直接显示的单字节字符的编码
'0x2d' 应该算是一个标准的16进制表示的字符串,可以通过int('0x2d', 16) 转换为int 类型的值
你可以认为'0x2d'是语法错误,'\x2d'才是正确的写法。
具体说'0x2d'不是一个char,而是一个int,它的值是0x30783264或者0x64327830,具体是哪个要看实现。
C标准这么说:
注意它提到了在C++里这个东西的type是char,据我所知至少VC支持这么写:'\xe5\xad\x97',这是一个UTF-8编码的"字"。
'0x2d'是包含4个字符的字符串吧, '\x2d'表示字符'-'(其ASCII数值为0x2d=45)。
编橙之家文章,
相关内容
- 请问pyinstaller打包exe文件在中文目录下面无法运行何解
- python脚本中怎么用virtualenv激活指定环境?,pythonvirtu
- linux配置cron定时执行脚本首行一定要明确指定解释程序
- 如何控制WEB开发服务器数据下载数据量过大问题,web过
- Python如何得到网页审查元素的代码,python审查,网页源代
- python删除dict空值元素报错RuntimeError原因,dictruntimeerr
- 是python的scrapy框架,xpath中可否以插入正则表达式,scr
- 求Python服务器后台间隔自动运行时间设置方法思路,
- django满足条件再输出的列表显示怎么写?,django怎么写
- 列表合并之后原相同数据不被覆盖应该写python源码,
评论关闭