C语言学习笔记 lesson3 整数类型

来源:互联网 发布:轩辕剑纹身进阶数据 编辑:程序博客网 时间:2024/05/22 08:04

整数类型

C语言中用来表示数据是变量和常量,

变量是能变化的值

整数变量

int  

short  

long 

unsigned

编程最小的单位  位bit

使用最多单位的最小的      字节byte

字  = 4 字节

双字 = 8 字节 较为基础的数量单位

四种类型表示的大小范围各不同

计算机想要存取数据 必须告诉计算机在哪个内存地址中存储 , 存储的时候存储多大。

根据存储单位的不同,分成了4种


int 32位

short  16 位

long  32位 (windows)  longlong 64位

unsigned 无符号 前置符,

short<=int<=long

程序实例

int main()   (不要写void main,  main 有返回值)

{

   int x ;  

在内存的某块区域找到内存地址,并且将内存地址之后的32个地址单元占据,里面存储属于x的内容。

声明后只是拥有了空间

   x=10 ;   往内存空间写入数据;

   x=010; 

   x=0x7fffffff;

   int  y  =   x;      访问 内存 ;

  找到可用的内存 ,指定内存地址,分配4byte属于变量Y ; 

  找到x的内存空间的地址,读取32位的内存,解析出x的值,然后把这个值放在y变量指向的内存空间当中所占用的32位  4byte空间中。

 操作变量是在操作一个集合,综合体

 printf(“%d”,x);打印需要stdio.h

getchar();

   return  0 ;

}

内存中存的值都是一样的,会根据程序不同的解析方式呈现出不同的结果。

printf 应该选择合适的占位符 ;

使用short 会比 int 占用更多的资源 , 在输出的时候会先转换成int。


练习

 1.使用正确的占位符打印出int, long, longlong的最大值和最小值(有符号)

int a = 0x7FFFFFFF;

long b = 0x7FFFFFFF;

long long c = 0x7FFFFFFFFFFFFFFF;

printf("int 型最大值:%d\n",a);

printf("int 型最小值:%d\n",a+1);

printf("long 型最大值:%ld\n",b);

printf("long 型最小值:%ld\n",b+1);

printf("long long 型最大值:%lld\n",c);

printf("long long 型最小值:%lld\n",c+1);

结论 int ==long 


2.请写出一个16进制的溢出有符号和无符号的long型

printf("long 型最大值:%ld\n", b);

printf("溢出long最大值%%ld型:%ld\n", b + 1);

printf("溢出long最大值%%u型:%u\n", b + 1);

结论:对同一块内容,两种不同的输出方式产生了不同的结果,说明解析数据的方式不同,同一块内存所呈现的数据也不同

 

3.-12345在无符号int中的值为多少

int d = -12345;
printf("-12345在无符号int中的值为%u\n", d);

        直接使用%u得到无符号的值


0 0