计算机理论与基础
爱喝茶的程序猫
软件学菜鸟,好好地做下去
展开
-
32位x86体系linux虚拟地址空间
每个程序被运行起来以后,它将拥有自己独立的虚拟地址空间(Virtual Address Space),这个虚拟地址空间的大小由计算机的硬件平台而决定,具体由CPU的位数决定。硬件决定了地址空间的最大理论上限,即硬件的寻址空间的大小,例如,32位x86体系linux虚拟地址空间是4GB的虚拟空间大小,地址范围是0~2^32-1,即0x00000000~0xFFFFFFFF。0X00000原创 2017-10-12 00:02:38 · 1369 阅读 · 0 评论 -
虚拟存储器
虚拟存储器引入一个系统中的进程是与其他进程共享CPU和主存资源的。但是如果有很多进程都需要访问主存,那就很危险了,如果一个进程将自己的数据写进别的进程的逻辑中去了,那么两个进程都挂掉了,你自己出错了,别拉上别的进程垫背啊。当存储器没有空间了,却有进程要访问内存,那只能等待了,谁又能记录有进程等待的信息呢,万一内存有空间了,这个进程还没有动手,就被别的进程捷足先登了,那这个进程永远也不会原创 2018-02-02 17:50:01 · 217 阅读 · 0 评论 -
字符编码之ASCII、UTF-8、UTF-16的区别
ASCII编码根据百度百科整理的^_^在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通...原创 2018-02-10 12:02:56 · 2693 阅读 · 0 评论 -
位操作
移位操作移位操作只是简单地把一个值的位向左或者向右移动。在左移位中,值最左边的几位被丢弃,右边多出来的几个空位则由0补齐。,如图是个左移位的例子,它在一个8位的值上进行左移3位的操作,以二进制形式显示。这个值所有的位均向移三个位置,移出左边界的那几位丢失,右边空出来的几个位则用0补齐。 右移位操作存在一个左移位操作不曾面临的问题:从左边移入新位时,可以选择两种方案。一种是逻辑移位,左边移入的...原创 2018-02-10 13:00:22 · 240 阅读 · 0 评论 -
系统大小端检测
大小端的引入在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short类型,32bit的int类型,另外位数大于8位的处理器,例如16位或者32位bit的处理器,由于寄存器宽度大于一个字节,要么必然存在着一个如何将多个字节安排的问题。因此导致了大端存储模式和小端存储模式。什么叫大小端?大端...原创 2018-02-11 16:48:00 · 430 阅读 · 0 评论