C和计算机系统
文章平均质量分 55
Kang_TJU
Talk is cheap!
展开
-
位运算汇总
本文主要参考了这篇博文[位操作基础篇之位操作全面总结],并且复习了深入理解计算系统第二章的内容。基础原理位操作实现二进制求逆序 描述: 我们知道如何对字符串求逆序,现在要求计算二进制的逆序,如数34520用二进制表示为: 10000110 11011000 将它逆序,我们得到了一个新的二进制数: 00011011 01100001 它即是十进制的7009。思原创 2017-01-04 20:36:11 · 439 阅读 · 0 评论 -
字节对齐学习
基本概念字长 CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。需要注意一点,CPU的字长和具体的机器相关,比如对于32位系统,表明当前CPU的字长是32位,即CPU可以同时处理32位数据。 CPU字(Word)和比特(Bit)、字节(Byte)都是计算机保存信息的单位,只不过他们的量级不一样。为什么CPU字这个东西很重要,因为这牵扯到内存对其的问题。 对于大多原创 2017-04-21 23:04:28 · 294 阅读 · 0 评论 -
整型溢出的问题
参考[C语言的整型溢出问题],自己稍作总结。问题先看一个简单的问题,求两个数的和。你可能会有如下的实现:#include <iostream>int add( int a, int b ){ return a+b;}int main( void ){ int a,b; while( std::cin >> a >> b ){ int sum = add(原创 2017-07-26 18:20:52 · 687 阅读 · 0 评论 -
操作系统-内存管理机制
本文总结了我对内存管理机制的学习,先从通用的操作系统课本的内存管理机制学习,然后深入到Linux操作系统,对于内存管理机制的实现。通用操作系统内存管理机制这一目我主要参考的是汤小丹老师《计算机操作系统》当中的内容,在此先说明。概述课本上并非直接讲内存管理,而是即cpu管理讲完之后,开始的存储器管理。毕竟它是操作系统需要负责进行管理的,当然这里面的重中之重当然是对于内存的管理。内存管理当中最重要的原创 2017-08-09 14:53:19 · 2732 阅读 · 0 评论 -
memcpy实现
本文引出memcpy的问题,并提供一个实现方式。 参考了[【C/C++】实现memcpy函数]问题首先来看memcpy的定义:void *memcpy(void *dest, const void *src, size_t n);//If copying takes place between objects that overlap, the behavior is undefined.对于内原创 2017-07-26 16:04:38 · 1348 阅读 · 0 评论 -
bitmap学习
主要参考了以下两篇文章 [《编程珠玑》学习总结1—bitmap] [浅谈bitmap算法]基本概念什么是bitmap 我自己的理解是:首先是一种map,其次映射到bit位。关键还是它是一种映射,映射到的value由于是bit,比较节省空间。bitmap是一种映射,每一个bit位用来表示key所对应的value是否存在。优点和缺点是什么 优点:节省空间,并且,位运算比较快 缺点:不能处理原创 2017-07-14 12:30:26 · 451 阅读 · 0 评论 -
大端机和小端机区别
问题大端机和小端机的区别。 深入理解计算机系统里面有如下的描述: 对于跨越多字节的对象,我们必须建立两个原则,这个对象的地址是什么以及存储器中如何排列这些字节。对于第一个问题,几乎在所有的机器上面,多字节对象都被存储为连续的字节序列,因此对象的地址为所使用字节中最小的地址。对于第二个问题,也称为字节序的问题。有两种存储方式。大端模式:数字逻辑高位存储在内存的物理低位小端模式:数字逻辑低位存储原创 2016-12-14 22:41:08 · 6458 阅读 · 0 评论 -
NULL和'\0'的区别
简述下这两个token的区别. 从语义上来说,他们两是不一样的. NULL表示无效地址,可以用来表示当前指针不指向任何地址。可以用0实现,也可以不用,只要它符合无效地址的语义。 ‘\0’表示字符串结束标志,用来表明一个完整的字符串。ascii码值为0。 这是他们两的区别,至于怎么实现那是另外一回事了。不能因为物理值的一样模糊了语义的区别,我们关注的本生就是逻辑语义值。原创 2017-03-22 21:37:35 · 902 阅读 · 0 评论 -
字符串函数实现
itoa函数原创 2017-03-27 17:25:58 · 291 阅读 · 0 评论 -
深入理解linux内核(第三版)-读书笔记
本文记录我对《深入理解linux内核》第三版的杂谈读书笔记,所记录的大部分为杂谈记录,系统的知识我会单独总结。第一章 绪论操作系统基本概念进程 程序运行时的一个实例。地址空间 允许进程引用的内存地址集合。系统调用 即对内核提出的请求,硬件就会把cpu从用户态切换到内核态。然后开始一个内核的执行过程。执行完毕之后,内核过程将迫使硬件返回到用户态。继续执行下一条指令。文件描述符(这一部原创 2017-08-09 20:17:15 · 634 阅读 · 0 评论