c语言的类型与计算
类型与计算
计算机体系结构(冯诺依曼体系结构)
-输入单元
-输出单元
CPU读取速率:
缓存 > 内存 > 硬盘 > 网络
ns 几十ns 固态μs 机械ms ms到s
任务:以上几种存储器的 IO 的数量级
常量&变量(字段)
存储输入的数据或运算的中间值及结果,需要声明划分存储空间
内存空间有编号,但是不易于使用,所以给内存区域一个标识符(变量名、常量的名字)
标识符(变量或常量的名字)的命名规则
字母、数字、下划线 _;不能有其他符号
不能数字开头,不能包含空格及下划线之外的其他符号
不能使用关键字和保留字
ls
hello
_hello
_163
first_name
first name 不合规
65n 不合规
first-name 不合规shell
free 内存的统计信息 32位系统有效寻址能力为4个G
Range 内存的编号范围
-h 可读的
内存的范围
lsmem 内存地址
类型
- 基本类型(原子)
- 复合类型(数组、结构体、联合、枚举、类)
整型,不含小数点、区分正负、还可以’无符号’
类型的大小与平台(编译器实现)有关(一个字节8位)
- ‘short’ 2 2^16 -65536/2 ~ 0 ~ 65536/2 -1
- ‘int’ 4(32/64位中占4个字节,别的操作系统可能不同)
- ‘long’ 8
- ‘long long’ 8
无符号(unsigned)的整型只能存0~正数 系统编程对空间进行编号(计数)
- ‘unsigned short’ 2 0~65535(端口数65536、android应用的函数数量一般不超过65535/65536超过计数范围会导致丢失)
- ‘unsigned int’ 4(32/64位中占4字节,别的操作系统可能不同)
- ‘unsigned long’ 8
- ‘unsigned long long’ 8
浮点,有小数位
- ‘float’ 4
- ‘double’ 8
字符
-‘char’ 1
语言
- 静态类型:C/C++,Java: 编译时检查使得这些语言比较安全,空间分配比较明确,编译型语言,一般都比较快比较稳定,什么都可以存【快】
- 动态类型:Python,JS(Javascript) “解释执行”,语言灵活、高效,空间开销大,【慢】
C/C++目前遇到的威胁早期是GO,最近是Rust(火狐浏览器)还需要时间,RUST学习成本比较高
作业
1.纸上写各个类型及其大小(字节)
2.复习八进制、十六进制、二进制
(99)转10,8,16,2进制
小数转二进制:0.1