摘要: I/O和文件 输入/输出(I/O)就是在内存和外部设备之间复制数据的过程。输入(input)就是从I/O设备复制数据到内存,输出(output)就是从内存复制数据到I/O设备。 一个文件可以理解成一串字节序列。所有的I/O设备,如网络、磁盘和终端,都被抽象为文件。所有的输入和输出都可以简化地抽象为对 阅读全文
posted @ 2019-04-27 15:46 raytheweak 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 汇编指令 x86 64 CPU有16个寄存器,每个寄存器都能存储一个64位(即8个bytes)的值,每个寄存器的名字都以%r开头,并且不同的寄存器有约定上的不同的用途。下图以%rax为例,这个寄存器专门用于存放返回值,其中的“子部分”%rax、%ax、%al也能作为指令的operand(操作数),但 阅读全文
posted @ 2019-02-06 16:35 raytheweak 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 信息的存储 32位机器就是指他的地址可以用32位二进制数来表示,这里的32就是所谓的word size,同时也是一个指针的大小,64位机器同理。因为2的32次方等于4G,所以32位的进程最多只能有4G的内存。32位的程序由于向后兼容,可以在大多数64位机器上运行,反之则不行。32位程序或64位程序是 阅读全文
posted @ 2018-10-21 16:25 raytheweak 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 信息就是比特+上下文 何为比特?就像人类发明的文字,比特就是信息的载体。英语有26个字母,不同的字母组合构成了各种单词。同理,比特(即0或1)的不同组合也构成了各种信息。正如同一个单词在不同的上下文中有不同的意思,同一串比特在不同的上下文中也代表着不同的信息。所以才会有各种变量类型,各种Conten 阅读全文
posted @ 2018-10-13 15:14 raytheweak 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 翻译自一篇博文,原文: "One user scenario to rule them all" 异步系列 剖析C 中的异步方法 扩展C 中的异步方法 C 中异步方法的性能特点。 用一个用户场景来掌握它们 c 中异步方法的几乎所有重要行为都可以基于一个用户场景进行解释:尽可能简单地将现有的同步代码迁 阅读全文
posted @ 2018-07-28 20:17 raytheweak 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 翻译自一篇博文,原文: "The performance characteristics of async methods in C " 异步系列 剖析C 中的异步方法 扩展C 中的异步方法 C 中异步方法的性能特点 用一个用户场景来掌握它们 在前两篇中,我们介绍了C 中异步方法的内部原理,以及C 阅读全文
posted @ 2018-07-15 17:36 raytheweak 阅读(1550) 评论(2) 推荐(1) 编辑
摘要: 翻译自一篇博文,原文: "Extending the async methods in C " 异步系列 剖析C 中的异步方法 扩展C 中的异步方法 C 中异步方法的性能特点。 用一个用户场景来掌握它们 在上一篇中我们讨论了C 编译器是如何转换异步方法的。在这一篇,我们将重点讨论C 编译器为自定义异 阅读全文
posted @ 2018-06-03 21:27 raytheweak 阅读(3152) 评论(1) 推荐(1) 编辑
摘要: 翻译自一篇博文,原文: "Dissecting the async methods in C " 有些括号里的是译注或我自己的理解。 异步系列 剖析C 中的异步方法 扩展C 中的异步方法 C 中异步方法的性能特点。 用一个用户场景来掌握它们 C 这门语言对开发者的生产效率有很大帮助,我很高兴最近的推 阅读全文
posted @ 2018-04-07 21:57 raytheweak 阅读(1770) 评论(1) 推荐(1) 编辑
摘要: 我们都知道计算机中的负数是用补码来表示的,而负数的补码是原码符号位不变,其他位按位取反再加一。但是为什么必须这样?为什么非要取反再+1?这个定义是怎么来的? 首先我们用我们熟悉的十进制来思考问题,假设现在我们只考虑两位数字的运算,比如56 + ( 28) = 56 28,这里如果作正常的减法运算,就 阅读全文
posted @ 2017-08-05 16:28 raytheweak 阅读(5545) 评论(3) 推荐(5) 编辑
摘要: 最近看《剑指Offer第二版》有这么一道面试题: 题目:给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n 1并且m 1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三 阅读全文
posted @ 2017-07-31 20:52 raytheweak 阅读(284) 评论(1) 推荐(0) 编辑