char、unsigned char、BYTE

本文详细解释了char(signed char)和BYTE(unsigned char)的区别,包括它们如何表示不同的数值范围和符号,以及在不同编译环境和编码标准下,同一字节数据所表示的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先uchar就是BYTE:Typedef unsigned char BYTE;

char:就是signed char,是一个字节,8个位。第8位是符号位,所以可以表示-128~127共256个符号。

BYTE:没有符号位,可以表示0~255共256个符号。

在计算机中,所有数据都是二进制表示,一个字节有8个二进制位,2个十六进制位,如1111 0000=0xf0.这个字节代表扩展ASCII中的全等于符号(‘=‘多一行)。

可以把这个字节存成char,表示成-112(0111 0000=112),然而单个负数ascii不能构成意义,需要和其他码一起构成意义,比如可能在unicode里和其他字节表示成某个中文,所以有时候在mfc中调试时,显示char中的字符无效(花了好多天才明白这句话);也可以存在BYTE中,表示成扩展adcii码240(1111 0000=240),意义即上面的那个符号。

所以同一个字节存在char中或者byte中表示的意义不一样,但是读取它的时候都都城1111 0000,它具体翻译过来的意义和编译环境和选择的编码标准有关。

转载于:https://www.cnblogs.com/judes/p/5945844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值