码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 —— char与unsigned char

时间:2018-09-08 15:24:09      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:-128   bsp   col   return   进制   pre   class   include   span   

1 #include <stdio.h>
2 int main()
3 {
4     unsigned char a = 128;
5     char b = a;
6     printf("a = %d , b = %d",a,b);
7     return 0; 
8 }

输出结果为 a = 128 , b = -128。

128的二进制表示为1000 0000

因为char是有符号类型,所以编译器把128,即1000 0000当成有符号数,即补码为1000 0000 (因为计算机中的有符号数都是用补码来表示的),其表示的十进制值为B2T = -2^8 = -128(此处参考csapp中第45面的公式2.3)。所以b = 128

 

C语言 —— char与unsigned char

标签:-128   bsp   col   return   进制   pre   class   include   span   

原文地址:https://www.cnblogs.com/FengZeng666/p/9608989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!