char型注意的问题

定义: char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,
但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。

转换: int/unsigned int变量赋值给 unsigned char变量是会发生字节截断(9位和高于9位的将被程序自动丢弃)

如:unsigned int a = 0xFFFFFFF7;

unsigned char b = (unsigned char)a;

此时b的值为 0xF7;


储存:unsigned char在计算机中使用补码存储,
例如:unsigned char a = 0xF7;
a在计算机中存储的方式为:10001001


char 型的值 [-128, 127]:
unsigned char 型的值 [0, 255]

--------------------------------

例子:
char a = 127;
char b = 128;
char c = 129;

char d = 255;
char e = 256;
char f = 257;

char g = -10;

printf("a = %d, b = %d, c = %d, d = %d, e = %d, f = %d\n", a, b, c, d, e, f);
printf("g = %d\n", g);

输出结果: a = 127, b = -128, c = -127, d = -1, e = 0, f = 1 

  g = -10


----------------------------

unsigned char w = 255;
unsigned char x = 256;
unsigned char y = 257;
unsigned char z = 258;

unsigned char zz = -10;

printf("w = %d, x = %d, y = %d, z = %d\n", w, x, y, z);
printf("zz = %d\n");

输出结果: w = 255, x = 0, y = 1, z = 2
  zz = 246



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值