美文网首页
计算机信息存储

计算机信息存储

作者: 牛牛_735d | 来源:发表于2019-12-18 14:02 被阅读0次

    大多数计算机使用8位的块、或者字节byte 作为最小的可寻址的内存单位、而不是访问内存中独立的位、机器级的程序将内存视为一个很大的字节数组、称为 虚拟内存(virtual memory), 内存的每个字节由一个唯一的数字来标识、所有可能地址的集合称为 虚拟地址空间(virtual address space)

    每个计算机都有一个字长 word size, 表明指针数据的标称大小, 对于宇哥w位的机器而言、虚拟地址的范围是 0~2m-1

    32位字长限制虚拟地址空间为4GB、64位为16EB(1.84*1019)字节

    大多数64位机器可以运行32位的程序、

    eg. gcc -m32 prog.c 编译出来的程序可在32位机器上运行、

    ​ gcc -m64 prog.c 编译出来只可在64位机器上运行

    so. 将程序称为32位或者64位程序时、区别在于程序是如何编译的、而不是运行时机器的类型

    为了避免依赖大小和不同编译器设置带来的差异、ISO C99标准引入了 int32_t 和 int64_t 两种固定长度的数据类型

    大端法: 高地址存储高位数

    小端法则反之

    对大多数程序来说、字节顺序完全不可见、但:

    A机器产生的数据通过网络发送到B机器时、B机器会按照字节的内部表示来进行转换、可能会出问题、eg. add %eax, 0x2000b43(%rip) 、字节顺序就会导致数据解析错误

    so. 网络应用程序的代码必须遵守已建立的关于字节顺序的规则

    相关文章

      网友评论

          本文标题:计算机信息存储

          本文链接:https://www.haomeiwen.com/subject/jvqunctx.html