小议C语言中数据类型的范围

来源:互联网 发布:软件开发经理岗位职责 编辑:程序博客网 时间:2024/05/01 13:43

    C语言中常用的数据类型有char(字符型),short(短整型数据类型),int(整形数据类型),long(长整形数据类型),double(双精度浮点型),float(浮点型)。

   char在内存中是以一个字节8位储存,在内存中只有0或1,它代表有符号短整数型数据类型,简称短整数型数据类型,-128——127最高位代表符号位,0代表正数,1代表负数,正数最大为01111111B(用二进制表示)= 1*2^6(这个1为第六位的1,2^6代表2的6次方)+1*2^5(这个1为第五位的1)+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 127D(127为十进制数用D表示,一般可省),而最小值为10000000B = -0D,而在内存中用补码来表示负数,正数的原码,反码,补码相等,但负数的原码,除符号位为,其余位取反得到反码,反码在+1,得到补码,如10000000B的反码为11111111B,补码为11111111B+1=100000000B = -128;对于没有符号短整数型数据类型 unsigned char在内存中也是以一个字节(8位)来存储,它的存储范围为0——255,因为它没有符号,故最小值为00000000B = 0D,而最大值11111111B = 2^7 -1 = 255D,故它的取值范围为0-255;char在输出的时候以%c形式输出,而unsigned char以%u输出;short在内存占2个字节16位,它的取值范围为-2^15——2^15-1,计算方法和char计算方法一样,而unisgned short取值范围为0-2^16-1;short在输出时用%d表示,unsigned short输出格式为%u,int/long 在内存中占4个字节32位,它的取值范围为-2^31——2^31-1;而unsigned int/unsigned long 取值范围为0——2^31-1,但long的输出格式是%l,unsigned long是%lu;double是双浮点型,8个字节,float是4个字节,double一般的有效数字是15-16位,而float是6-7位,因此double的精度比float高

0 0
原创粉丝点击