开始看 <<汇编语言程序设计>>

数据存储方式 位&字节

  • 计算机底层只能存储二进制信息,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类型也只能读取前半部分,

你可能感兴趣的:(开始看 <<汇编语言程序设计>>)