数据存储方式 位&字节
-
计算机底层只能存储二进制信息,0,1,任何信息都是通过连续0,1,来表示的,用固定的规则对固定的串长可定这些串长的真实含义.最小的物理单位 是位,一个位可以存放0,或1.这个值得的含义取决它的类型定义,比如用来判断时,0表示假,1表示真.一个位表示的信息很有限,但多个连续的位就能够表 示很多有用的东西,
-
比如用8个位可已表示英文任意字符,8个位也是一个字节的基数.计算机的内部有大量连续的的位,位是最小的单位,可以想象一个充满格子的空间,一个 格子就是一个位,为了更方便管理使用这些位,每隔8个位取一个编号,对于8个位的新单位就是字节,也就是计算机的每个字节都有它唯一的编号.
类型串长
- 用固定的串长表示一个元素,在用若干个这样的串长就可以表示任何信息,比如英文就是由26个字母大小写,各种符号构造各种英文文档,我们就可以用一个固定的串长表示出它的元素,
就像C语言支持的多种类型一样char,int,float, 同样的位元素可以以不用的方式取读,
-
比如”abc”[a->97->01100001][b->98->01100010][c->99->01100011]最后内部形式就想这样011000010110001001100011等价于abc.可以看出a的存储形式就是97的二进制,那如何表示97呢?,
这里是靠类型定义与串长来确定的,当把这个值给整型类型读取时它被表示成数字,用结构体读取又是另一种信息了.
例子
char ch = 'a';
/*字符*/
printf("%c\n", ch);
/*数字*/
printf("%d\n", ch);
char类型的串长是一个字节,当给它2个字节的
数据,它只取低位的那个字节,
例子
#include <stdio.h>
int main(int argc, char const *argv[]) {
int a = 0X161;
printf("%c\n", a);
return 0;
}
这里用char读int类型因为char是一个字节的固定串长,如果用int读double类型也只能读取前半部分,