char与unsigned char的区别
区别 char unsigned
2023-09-11 14:19:04 时间
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
相关文章
- CSS中一个冒号和两个冒号有什么区别
- Java中StringBuffer和StringBuilder的区别
- Java中Iterator 和ListIterator的区别
- const char*, char const*, char*const的区别
- 转--Invalidate和postInvalidate的更新view区别
- 请简要说明一下CyclicBarrier和CountDownLatch的区别?
- Linux C 知识 char型数字转换为int型 int型 转换为Char
- atitit.guice3 绑定方式打总结生成非单例对象toInstance toProvider区别 v2 pb29
- Dom onload和jQuery document ready的区别
- 条件变量和信号量的区别
- HTTP协议GET和POST请求的区别
- 说说WM_DESTROY和WM_NCDESTROY的区别
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)
- SpringBoot与SpringCloud的关系与区别
- fold()操作和reduce()操作的区别
- C# Hashtable、HashSet和Dictionary的区别
- golang 切片slice使用总结(动态数组、cap与len区别)