我有一个文本渲染器,它使用字符串中的负 char 值以我制作的字体渲染自定义符号,而不是常规的 ascii 文本。
text.write("Hello! _"); // insert a heart at the underscore somehow...
// the heart's value is char -10
有没有办法得到一个负的 char 值,静态地写在双引号内?或者有没有办法在引号之外执行此操作,但仍然作为字符串文字?
编辑:
澄清一点,不幸的是,在这种特殊情况下我必须使用 char
数组。代码内部使用std::string
,所有正值均采用标准ascii字形。我的目标是能够在字符串文字中注入(inject)一个负数来表示额外的符号。所以以下内容为真:
const char * literal = "a literal w/ a negative char value as the 10th element"
literal[9] == -10; // would be true
最佳答案
你可以写"Hello!\xf6"
。 f616 = -10 + 256
这是可行的,因为在 8 位 2 补码整数中,负值 -128 .. -1
与 256 个更大的无符号值 128 .. 255
具有相同的位表示>.
关于C++:将负字符值插入字符串文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25424490/