gpt4 book ai didi

c++ - 当我们将 char 转换为大于 256 的数字时会发生什么?

转载 作者:行者123 更新时间:2023-11-30 00:49:09 27 4
gpt4 key购买 nike

我创建了一个可以创建 256 个独特符号的程序,并且运行良好。它通过将 1-256 的 (char) 转换写入二进制来工作。但是如果我决定将 (char)257 打印到文件中,该文件仍然有 256 个唯一符号。当我 cout (char)257 时,我在屏幕上看不到任何东西。这只是一个空字符还是实际上指向某物?

此外,如果 ASCII 是 128 个字母,那么 256 个字符的术语是什么? UTF-8?

最佳答案

当您将 257 转换为 char 时,该值将被截断为 1。

假设 sizeof(int) 在您的平台中为 4,257 表示为十六进制的 0x00000101。当您通过执行转换将其截断为 char 时,您会得到 0x01,它等于 11 表示的 ASCII 字符不是可打印字符。因此,您在使用时看不到任何输出:

std::cout << (char)257;

如果您使用:

char c = (char)257;
std::cout << (int)c << std::endl;

您应该看到 1 作为输出。

what would you call the term for 256 characters?

我相信你在谈论 extended ASCII characters .

关于c++ - 当我们将 char 转换为大于 256 的数字时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29179613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com