//2019/03/04#includeint main() { signed char a = 126; int b = 679881; //std::cout << std::hex; std::cout << a << std::endl; std::cout << b << std::endl; system("pause"); return 0;}
signed char表示有符号字符,在-128~127之间;
unsigned char 表示无符号字符,在0~255之间;
由于与ANSII对应:
也长这样:
ANSII为0000 0000~0111 1111 共127个字符(unsigned char且<128)
绝大多数计算机的一个字节(byte)是8位(bit),取值范围是0~255,而ASCII码并没有规定编号为128~255的字符,为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范。注意,虽然通常把这些规范称为扩展ASCII码(Extended ASCII),但其实它们并不属于ASCII码标准。
例如以下这种扩展ASCII码由IBM制定,在字符终端下被广泛采用,其中包含了很多表格边线字符用来画界面。
我们要修改CMD窗口中的代码页。将其修改成437(OEM-美国),就可以正常显示显示SCII码中128-255的特殊字符。
一般情况我们CMD中的默认代码页是936(ANSI/OEM - 简体中文GBK,用于在CMD中显示中文的,这样就不能在CMD中显示SCII码中128-255的特殊字符。
用cmd命令“chcp”可以查看当前默认代码页:
1.临时更改代码页:
使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效。
2.永久性更改代码页:
win+R,regedit,定位到:HKEY_CURRENT_USER\Console\
更改CodePage:437,即可。
当 unsigned char 为负数时:
//2019/03/04#includeint main() { unsigned char a = -85; unsigned char b = 256 - 85 ; //std::cout << std::hex; std::cout << a << std::endl; std::cout << b << std::endl; system("pause"); return 0;}
结果:
(需要把控制台的字体调到英文字体,具体:右键控制台上方,属性,字体)