- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
C 2018 标准为 '\xFF'
等十六进制转义序列的值指定了什么?
考虑一个 C 实现,其中 char
有符号和八位。
第 6.4.4.4 节告诉我们有关字符常量的信息。在第 6 段中,它讨论了十六进制转义序列:
The hexadecimal digits that follow the backslash and the letter x in a hexadecimal escape sequence are taken to be part of the construction of a single character for an integer character constant or of a single wide character for a wide character constant. The numerical value of the hexadecimal integer so formed specifies the value of the desired character or wide character.
\xFF
用于
'\xFF'
, 是文法中的 c-char (6.4.4.4 1),而
'\xFF'
是一个整数字符常量。根据 6.4.4.4 2,“整数字符常量是用单引号括起来的一个或多个多字节字符的序列,如
'x' 。”
The value of an octal or hexadecimal escape sequence shall be in the range of representable values for the corresponding type:
unsigned char
.
unsigned char
的范围内。 .
(i) An integer character constant has type int.
(ii) The value of an integer character constant containing a single character that maps to a single-byte execution character is the numerical value of the representation of the mapped character interpreted as an integer.
(iii) The value of an integer character constant containing more than one character (e.g., ’ab’ ), or containing a character or escape sequence that does not map to a single-byte execution character, is implementation-defined.
(iv) If an integer character constant contains a single character or escape sequence, its value is the one that results when an object with type char whose value is that of the single character or escape sequence is converted to type int.
'\xFF'
是那个字符的值。这是标准中第一次使用“ map ”;它没有在别处定义。除了从到目前为止派生的值 (255) 到具有相同值的执行字符的映射之外,它是否意味着其他任何东西?如果是这样,对于(ii)应用,必须有一个值为 255 的执行字符。那么值
'\xFF'
将是 255。
'\xFF'
是实现定义的。
'\xFF'
的值是
char
的值值为 255 的对象,随后转换为
int
.但是,由于
char
有符号和八位,没有
char
其值为 255 的对象。所以第四句陈述了不可能。
最佳答案
您的演示得出了一个有趣的结论:
There is no portable way to write character constants with values outside the range
0
..CHAR_MAX
. This is not necessarily a problem for single characters as one can use integers in place of character constants, but there is no such alternative for string constants.
char
为了与许多标准 C 库函数保持一致,默认情况下应始终未签名:
fgetc()
返回 int
负值 EOF
失败和 unsigned char
的值如果一个字节被成功读取。因此fgetc() == '\xFF'
的意义和作用是实现定义的。<ctype.h>
的函数接受 int
参数与 fgetc()
返回的值相同.传递负值 char
值具有未定义的行为。strcmp()
并根据转换为 unsigned char
的字符值比较字符串.'\xFF'
可能具有值 -1
这是完全不直观的,可能与 EOF
的值相同。 .char
默认情况下签名是与旧编译器兼容的历史代码,这些代码依赖于这种行为并且是在
signed char
出现之前编写的。 ,大约 30 年前!
-funsigned-char
制作
char
默认情况下未签名并使用
signed char
或更好
int8_t
如果需要带符号的 8 位变量和结构成员。
char
值应转换为
(unsigned char)
char
的签名在哪里可能会带来问题:例如:
char str[] = "Hello world\n";
for (int i = 0; str[i]; i++)
str[i] = tolower((unsigned char)str[i]);
关于c - C 标准为带有十六进制转义序列的字符常量的值指定了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485088/
我有一个消息 static int[] message = { 0x01, 0x10, 0x00, 0x01, // port addres 01 - 08
如何将十进制转换为以下格式的十六进制(至少两位,零填充,不带 0x 前缀)? 输入:255 输出:ff 输入:2 输出:02 我尝试了 hex(int)[2:] 但它似乎显示了第一个示例而不是第二个示
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Large numbers in Pascal (Delphi) 我正在尝试将 66 位值转换为十进制。 我注意到d
给定一个十进制数字列表,如何将每个数字转换为其等效的十六进制值,反之亦然? 例如: (convert2hex 255 64 64); ->(FF 40 40) (convert2dec FF 40 4
var color = Math.floor(Math.random() * 16777215).toString(16); var hex = Number.parseInt(col
我一直被教导 0-9 代表 0 到 9 的值,A、B、C、D、E、F 代表 10-15。 我看到这种格式 0x00000000,它不适合十六进制模式。有没有导游或导师可以解释一下? 我在谷歌上搜索了十
我目前正尝试像十六进制编辑器一样将文件读取为十六进制值。为了解释这个问题,让我们假设我有一个test.txt,里面有一个简单的“Hello world”。我正在尝试使用接近以下代码的程序以十六进制形式
我正在尝试获取元素背景颜色 $(document).ready(function(){ $.each('.log-widget',function(){ console.log($(t
0x40130020的十六进制值是 2.296883 的浮点值, 使用本网站 http://gregstoll.dyndns.org/~gregstoll/floattohex/ .这如何实现到 Lu
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,vis
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
谁能解释一下我们如何计算十六进制浮点常量的值。我在看书,发现0x0.3p10代表值192。 最佳答案 指数仍以十进制表示,但底数为二,尾数为十六进制。 所以 0.3P10 是 (3 × 16−1) ×
我正在尝试创建一个标签云,需要帮助来创建一个函数来计算应用于每个标签链接所需的颜色。 我有 3 个变量: 单个标签重要性(从 0.1 到 1) 最大(最重要)的标签颜色(十六进制代码,例如“fff00
大家好,我想发送尽可能短的字符串/值。如果我有以下内容 1)l23k43i221j44h55uui6n433bb4 2)124987359824369785493584379 3)kla^askdja
我知道你会写... background-color: #ff0000; ...如果你想要红色的东西。 你可以写... background-color: rgba(255, 0, 0, 0.5);
我有一些传递地理位置坐标的二进制数据流 - 纬度和经度。我需要找到它们编码的方法。 4adac812 = 74°26.2851' = 74.438085 2b6059f9 = 43°0.2763'
我想从 my_table 中选择 family,其中 family LIKE '%HEX(9D)' 家庭十六进制格式以 9D 十六进制结尾 我将excel文件转换为sqlite数据库但是 我的一些数据
我有一组二进制配置文件,每个文件有三个版本——每个文件的原始版本和两个不同修改的版本。我需要能够同时看到两个版本和原始版本之间的差异。 我需要的是一个二进制文件的三向差异工具。通过相当费力的谷歌搜索,
我正在尝试将(可变长度)十六进制字符串转换为带符号整数(我需要正值或负值)。 [Int16] [int 32]和[int64] 似乎可以在2,4+字节长的十六进制字符串上正常工作,但我在使用3个字节的
如何将十六进制的 unicode 写入 Facebook“您在想什么”框? 我尝试过写: \u00B9 "\u00B9" ¹ "¹" 到目前为止没有任何效果 (让我补充一下,我是在 M
我是一名优秀的程序员,十分优秀!