数据类型-整型(C语言)

  • Post author:
  • Post category:其他



目录


1 整型的表现形式和存储形式


1.1 整型分类


1.1 扩展类型


1.3 整数的表现形式


1.4整数的存储形式


2 各种进制及其转换


2.1 进制判断依据


2.2 十进制- – >二进制


2.3 八进制


2.4 十六进制


3 各整型类型及所占字节数


3.1 位和字节


3.2 字节数的影响因素


3.3 各类型所占字节数


3.4 各类型所占字节数


4 综合案例


4.1 各整型输出控制符


4.2 案例


1


整型的表现形式和存储形式


1.1


整型分类



包括: 基本整型 int

短整型 short int

长整型 long int

双长整型 long long int C99

1.1


扩展类型



[signed]



short



[int] 有符号短整型


unsigned short



[int]



无符号



短整型

[signed]



int



有符号基本整型


unsigned



[int]



无符号



基本整型

[signed]



long



[int] 有符号长整型


unsigned long



[int]



无符号



长整型

[signed]



long long



[int] 有符号双长整型(C99新增)


unsigned long long



[int]



无符号



双长整型(C99新增)


1.3

整数的表现形式



按极性:正数、负数和零。

按进制:二进制、八进制、十进制、十六进制等。


1.4



整数的存储形式



在计算机内存中均是按照



二进制




补码



形式



存储



的。



(1)


原码



二进制原码:



符号位



+



数值位



最高位



为符号位

正数:0

负数:1


(2)

原码举例






数的

原码



反码



补码



相同



(3)

负数的反码、补码



反码:把负数原码的符号位保持不变,数值位按位求反。

补码:把负数反码加1即得其补码。



2 各种进制及其转换


2.1


进制判断依据



前缀法:在C中,一般根据前缀确定进制。

前缀 0(零) 八进制,



注意:数字0,非字母o


前缀 0x 或 0X 十六进制

默认 十进制

2.2


十进制- – >二进制


2.3


八进制



数码及规则:0~7 必须








数字




0开头



,逢八进一

举例1:八进制数037代表的十进制数:

3\times 8^{1}+7\times 8^{0}=31

举例2:十进制数22用八进制可表示为:026,

验证:


6\times 8^{0}+2\times 8^{1}=22

2.4


十六进制



数码及规则:由0~9、A~F(a~f)16个数码,逢十六进一。

举例1:0x



1f



、0x1F、0X1f或0X1F,对应十进制数均为

1\times 16^{1}+15\times 16^{0}=31

举例2:十进制数22可表示为:0x

16

或 0X16 :
6\times 16^{0}+1\times 16^{1}=22

3


各整型类型及所占字节数


3.1


位和字节



位(bit):处理数据的



最小单位



,只能0或1。

字节(Byte):处理数据的



基本单位



,通常系统中一个字节为8位。即 1 Byte=8 bit



3.2 字节数的影响因素



影响因素:机器位数、C编译器等。

举例:32位系统,Turbo C 环境中 int 2字节。32位系统,VC++6.0 环境中 int 4字节。

3.3


各类型所占字节数



short  2字节

int     2或4 字节

long  4 字节

long long 8 字节

工具:



sizeof



运算符求所在环境中各类型所占字节数

sizeof(int)   sizeof(long)


3.4



各类型所占字节数



C标准未规定各类型所占具体字节数,仅规定各整型类型所占字节数满足如下关系:

sizeof(



short



) <= sizeof(



int



) <= sizeof(



long



) <= sizeof(

long long



)



4 综合案例


4.1


各整型输出控制符



%hd    以十进制



短整型


%d     以十进制



基本整型


%u     以十进制



无符号整型


%ld    以十进制



长整型


%lo    以八进制



长整型


%lh    以十六进制



长整型



4.2




案例


#include<stdio.h>

int main(void)

{

     unsigned int un_a=2500000000; 
     long l_b=65539;
     printf("In this system:\n");
     printf("short  has %d bytes.\n",sizeof(short));
     printf("int    has %d bytes.\n",sizeof(int));
     printf("long  has %d bytes.\n",sizeof(long));
     printf("un_a = %u not %d\n",un_a,un_a);
     printf("l_b = %ld not %hd\n",l_b,l_b);
     return 0;

}



版权声明:本文为weixin_46039719原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。