摘要:虚拟内存 先简单介绍一下操作系统中为什么会有虚拟地址和物理地址的区别。因为Linux中有进程的概念,1861tk.com:那么每个进程都有自己的独立的地址空间。 现在的操作系统都是64bit的,也就是说如果在用户态的进程中创建一个64位的指针,那么在这个进程中,这个指针能够指向的范围是0~0xFFFFFFFFFFFFFF 阅读全文
摘要:关于C++右值引用的参考文档里面有明确提到,右值引用可以延长临时变量的周期。如: std::string&& r3 = s1 + s1; // okay: rvalue reference extends lifetime 看到这里的时候,Binfun有点崩溃,就这就能延长生命周期?这个和以下的这样 阅读全文
摘要:今天讲讲arm汇编中除法的底层实现。汇编代码本身比较长了,如需参考请直接拉到文末。 下面我直接把arm的除法算法的汇编代码转译成C语言的代码贴出来,并进行解析。 因为篇幅有限,所以在此只解析无符号整型的除法运算,关于无符号除法和有符号除法的区别请参考上一篇推送。 代码较长如下,电脑端看效果更佳,如无 阅读全文
摘要:本文首发于微信公众号:Binfun解代码 公众号文章地址 之前群里有个同学向大家提出了类似这样的问题。随后这位同学公布了答案:右移运算是向下取整,除法是向零取整。这句话对以上现象做了很好的总结,可是本质原因是什么呢? 我一直以为-3>>1的结果是-1。所以打算思考一下这个问题。 补码 首先我们看看- 阅读全文