为什么叫补码
为什么叫补码(Two’s complement) 计算机的加减法运算天生是一个模2^N的同余类上的运算,满2^N会抛弃进位,那表示有符号数时使用同余类代表很正常吧,比如-1 = 2^N -1 (mod 2^N),-2 = 2^N-2 (mod 2^N),这实际上就是补码了。
为什么叫补码(Two’s complement) 计算机的加减法运算天生是一个模2^N的同余类上的运算,满2^N会抛弃进位,那表示有符号数时使用同余类代表很正常吧,比如-1 = 2^N -1 (mod 2^N),-2 = 2^N-2 (mod 2^N),这实际上就是补码了。
关于位图存储与数组下标存储的探讨 最近在看《编程珠玑》,书中的第一章提到了位图。位图存储使用二进制位的位数信息,来表示数字。例如,存储1、3、4、6、8,这五个数字, 可以使用<1, 0, 1, 1, 0, 1, 0, 1>这样的向量来表示,这样可以大大减少存储空间, 只用了一个字节(8bit),就可以存储原来需要的8个数字才能表示的信息。 ...
集合 集合一般被定义为:由一个或多个确定的元素所构成的整体。 集合有什么特性呢? 首先,集合里的元素类型不一定相同。 你可以将商品看作一个集合,也可以将整个商店看作一个集合,这个商店中有人或者其他物品也没有关系。 ...
理解Linux的file descriptor(文件描述符) 我们知道在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。在操作这些所谓的文件的时候,我们每操作一次就找一次名字,这会耗费大量的时间和效率。所以Linux中规定每一个文件对应一个索引,这样要操作文件的时候,我们直接找到索引就可以对其进行操作了。 ...
linux select函数 在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: 我们所关心的文件描述符 ...
Makefile 是 make 工具的配置文件,主要用于定义如何构建和管理项目的编译过程。Makefile 是 C/C++ 编译项目中的重要工具,尤其在多文件、多模块的项目中,为了方便复杂项目的管理,可以通过自动化规则提高编译效率。 ...
为什么Lisp语言如此先进? 一个前辈的官网
文件控制函数 file control 功能描述 fcntl函数可以用来对已打开的文件描述符进行各种控制操作, 以改变已打开文件的的各种属性 头文件 #include <unistd.h> #include <fcntl.h> 函数原型 int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); c int fcntl(int fd, int cmd, struct flock *lock); 描述 fcntl()针对(文件)描述符提供控制.参数fd是被参数cmd操作(如下面的描述)的描述符. ...