近来一直在学习python之类的高级语言,前几天被一个学弟问了C语言中关于char的一系列问题
结果一时回答不上来,毕竟很久没有复习最基础但是也是最讲究是C语言了,遂抽出不分时间开始温习C语言数据类型,经过研究得出下列结论。
首先放出问题:
1.char的取值范围是多少,为什么是这样。
2.如何用程序数出int类型的最大数字。
在看接下来的答总结的时候,也先请大家仔细思考一下,题目看似简单,实则需要结合原码,反码和补码问题才能解决。
首先明确一点:
无论是char short int float还是double,他们存储数字的方式都是将原数以补码的形式放入到内存中的,他们的补码最左边的一位都是用来表示正负的:1表示负数,0表示正数。
char在C语言中是占用1个字节的,一个字节是8bit,也就是8位,
当我们用char表示”1“这个数字的时候,其补码形式就是 0000 0001。
先看char可以表示的最大正整数
char能表示的最大的正整字就是0111 1111,这个二进制数转化为十进制就是: