Poedu_C语言_lesson10_20160909_整数类型
2016-09-11 15:26
316 查看
1.程序=算法+数据
2.常量、变量的定义
3.整数类型
![](https://img-blog.csdn.net/20160911153831013?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
int 32位
最大正数:0x7FFFFFFF
最大负数:0xFFFFFFFF
最小负数:0x80000000
short 16位
操作short所占用的资源会比int更大,因为32位系统一次性读写的数据是32bit。
在C语言中,规定了其的占位符为%hd,但是用%d来打印也是可以的,因为在如今的操作系统中,short都是先转换为int类型,再进行打印,因为short是16位,但是操作最快的是32(或64,视系统而定)位。
long 32位
为什么long的长度和int是一样的?
这是由系统决定的,以前的情况是操作系统众多,各类型所占大小(位)并不是固定的,但是要满足如下条件:
long>=int>=short 所以,如果出现long的长度等于int的长度,是允许的
long long 64位
由来:系统默认long的长度是32位,但是随着数据越来越大,32位不够用了,所以就有了long long
unsigned
当前我们的数据类型是没有符号的,它的首位不再用于表示符号位,所有的位数都拿来表示整数,所以能够表示的数字会更大
关于有符号型和无符号型的一些实验:
int 和 unsigned int 的取值范围:
int :最大正数:0x7FFFFFFF 即:2147483647
最小负数:0x80000000 即:-2147483648
unsigned int:最大数:0xFFFFFFFF 即:4294967295
无符号型数据,最高位不做符号位,因此,无符号型数据只有正数
注:记住各类型的取值范围,注意数据越界以及进位带来的影响,使用十六进制可以更简便的判定值是否超出变量类型的范围
(代码实验)
4.示例代码:后面加一个Demo做后缀,与工程代码区分开
5.main函数用int 型
main函数必须返回一个值,这样才知道程序是正常退出还是异常退出
6.声明变量:
当编译器执行到该语句时,会做两件事情:
在内存中的某个区域拿到内存指针,然后将内存指针后的4byte的空间归属于我们所定义的变量
7.对变量的操作(每个变量都是一个代号,是内存空间地址的标号以及当前数据所占空间大小的集合体)
写入:如int x=10;
不一定是十进制的,也可以是八进制、十六进制
访问:如int y; y=x;
声明y变量,找到x的内存地址,再其后读取4byte的内容,将它进行解析,得到一个值,再将这个值放到y指向的内存空间(可画图理解)
8.内存中所存储的数据都是相同的,但是会根据解析方式的不同呈现出不同的效果(值不同)
如:int y=-1;
printf("y=%u",y);
运行程序,得到的结果是:y=4294967295
=>明显不是我们想要的(我们给y赋的值是-1)
=>所以输出时要注意格式(占位符的正确使用)
9.两个层面:
1)内存层面:内存中都是0和1的组合
2)解析层面:根据解析方式的不同,可能会得到不同的结果
10.换算
1字节=8bit
1字 =4字节
1双字=8字节
(双字:现今较为基础的存储单位(8*8=64))
11.数据的存储步骤
1)内存地址
2)需要的大小
2.常量、变量的定义
3.整数类型
int 32位
最大正数:0x7FFFFFFF
最大负数:0xFFFFFFFF
最小负数:0x80000000
short 16位
操作short所占用的资源会比int更大,因为32位系统一次性读写的数据是32bit。
在C语言中,规定了其的占位符为%hd,但是用%d来打印也是可以的,因为在如今的操作系统中,short都是先转换为int类型,再进行打印,因为short是16位,但是操作最快的是32(或64,视系统而定)位。
long 32位
为什么long的长度和int是一样的?
这是由系统决定的,以前的情况是操作系统众多,各类型所占大小(位)并不是固定的,但是要满足如下条件:
long>=int>=short 所以,如果出现long的长度等于int的长度,是允许的
long long 64位
由来:系统默认long的长度是32位,但是随着数据越来越大,32位不够用了,所以就有了long long
unsigned
当前我们的数据类型是没有符号的,它的首位不再用于表示符号位,所有的位数都拿来表示整数,所以能够表示的数字会更大
关于有符号型和无符号型的一些实验:
int 和 unsigned int 的取值范围:
int :最大正数:0x7FFFFFFF 即:2147483647
最小负数:0x80000000 即:-2147483648
unsigned int:最大数:0xFFFFFFFF 即:4294967295
无符号型数据,最高位不做符号位,因此,无符号型数据只有正数
注:记住各类型的取值范围,注意数据越界以及进位带来的影响,使用十六进制可以更简便的判定值是否超出变量类型的范围
(代码实验)
4.示例代码:后面加一个Demo做后缀,与工程代码区分开
5.main函数用int 型
main函数必须返回一个值,这样才知道程序是正常退出还是异常退出
6.声明变量:
当编译器执行到该语句时,会做两件事情:
在内存中的某个区域拿到内存指针,然后将内存指针后的4byte的空间归属于我们所定义的变量
7.对变量的操作(每个变量都是一个代号,是内存空间地址的标号以及当前数据所占空间大小的集合体)
写入:如int x=10;
不一定是十进制的,也可以是八进制、十六进制
访问:如int y; y=x;
声明y变量,找到x的内存地址,再其后读取4byte的内容,将它进行解析,得到一个值,再将这个值放到y指向的内存空间(可画图理解)
8.内存中所存储的数据都是相同的,但是会根据解析方式的不同呈现出不同的效果(值不同)
如:int y=-1;
printf("y=%u",y);
运行程序,得到的结果是:y=4294967295
=>明显不是我们想要的(我们给y赋的值是-1)
=>所以输出时要注意格式(占位符的正确使用)
9.两个层面:
1)内存层面:内存中都是0和1的组合
2)解析层面:根据解析方式的不同,可能会得到不同的结果
10.换算
1字节=8bit
1字 =4字节
1双字=8字节
(双字:现今较为基础的存储单位(8*8=64))
11.数据的存储步骤
1)内存地址
2)需要的大小
相关文章推荐
- Poedu_C语言_lesson11_20160911_char类型
- Poedu_C语言提升_Lesson01_20161108_数据类型
- Poedu_C语言提升_Lesson02_20161111_数据类型2
- C语言学习笔记 lesson3 整数类型
- Poedu_C语言_lesson18_20160919_运算符运用
- Poedu_C语言_lesson15_20160914_printf详解
- Poedu_C语言_lesson19_20160920_循环
- Poedu_C语言_lesson09_20160908_编程概述
- 对C语言整数类型的一点理解
- Poedu_C语言_lesson17_20160918_运算符简介
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- c语言中32为地址类型转换为64位整数类型
- 查找程序中的错误(平凡的程序,不平凡的问题) 4.不定义第三个变量,互换两个变量的值 5.char 类型转换 6.输出 10~100 之间的随机整数
- Poedu_C语言_Lesson25_20161007_字符串处理函数(2)
- Poedu_C语言_lesson26_20161008_文件处理函数
- Poedu_C语言_Lesson20_20160923_分支语句
- C语言字符类型和整数类型的通用性
- 判断两个int类型的整数相加,相减是否溢出的C语言代码
- C语言笔记 lesson4 char类型
- C语言学习笔记 lesson5 浮点数类型及复习