数据类型和内存二进制的相关






二进制 八进制 十六进制


二进制 八进制 十六进制


位bit是含有0或1的一个单位


给一串二进制加上架构的概念,这样的结构叫字节


一个字节byte8位构成, 一个字word32构成或4个字节


一个字节最大是8位,8位数的二进制 1111 1111换成十进制255,也就是说一个字节最大能存的整数是255


2个字节可以存放 2的16次方=65535 4个字节2的32次方=4 294 967 295


大小写的26个英文字母还有10个数字和标点符号加在一起的内容在字节对应中有个ASC2的编码。


内存编号


起始编号是1 隔8个位置加1


起始编码1 位7 位6 位5 位4 位3 位2 位1 位0
1 0 0 0 1 0 1 1 0
2 1 0 1 1 0 0 1 1


C语言用的是起始地址+长度 编码2开始 往后4个字节




数据类型 DataType


数据类型是程序所处理的数据的抽象,将可能出现的数据进行分类 比如整数和带小数点的数。


C语言创造了很多丰富的数据类型


  • 构造类型
  • 指针类型
  • 空类型
  • 基本类型


基本类型


枚举类型enum 字符类型char 数值类型包括实型整型


  • 实型包括 单精度float 双精度double
  • 整型包括 短整型short 整型int 长整型long


构造类型


包括 数组 结构体 共用体


构造类型是由多个其他数据雷西瓜组合而成,可以分解成若干个元素或成员,每个元素或成员要么是一个基本数据类型,要么又是一个构造类型。


  • 数组 所有元素是同一个类型
  • 结构体 不同数据类型的组合
  • 共用体 多个雨啊宿不同数据类型 共用一块内存


空类型


Void 多数用在函数和指针的地方


需要Google一下的内容是
内存地址的布局方式 
int x = 4294967295 打印出来的正好是255
如果x的声明是4294967296 换成32地址的话
1 0000-0000 0000-0000 0000-0000 0000-0000 
如果x的声明是4294967297 换成32地址的话
1 0000-0000 0000-0000 0000-0000 0000-0001 

评论