我创建了一个可以创建256个唯一符号的程序,它运行正常。它通过写入二进制(1-2)的(char)演员来工作。但是如果我决定将(char)257打印到文件,该文件仍然有256个唯一符号。当我cout(char)257时,我在屏幕上看不到任何内容。这只是一个空洞的角色还是实际上指向某个东西?
如果ASCII是128个字母,你会称这个术语为256个字符吗? UTF-8?
答案 0 :(得分:6)
将257
投射到char
时,该值会被截断为1。
假设您的平台中sizeof(int)
为4,则257
以十六进制表示为0x00000101
。当您通过执行转换将其截断为char
时,您会得到0x01
,等于1
。由1
表示的ASCII字符不是可打印字符。因此,当您使用时,您看不到任何输出:
std::cout << (char)257;
如果您使用:
char c = (char)257;
std::cout << (int)c << std::endl;
您应该看到1
作为输出。
你会称这个术语为256个字符?
我相信你在谈论extended ASCII characters。
答案 1 :(得分:0)
你无法'char
转换为数字'。你可以将一个数字转换为char
,但是你得到的是char,
,它不够宽,不能容纳大于255的数字。