
学问思辨
文章平均质量分 62
剑指数模
学生
展开
-
为什么地址总线为N位的CPU,其寻址范围是2的N次方字节?
一、为什么是2n2n2^n?一根线是怎么连接两个存储单元的,难道里面有两根线芯?好像不是这样吧…… 因为计算机是采用二进制计算的。假设一台计算机,它只有111根地址线,那么它的元件只有 0/10/10/1两种状态。对应这个例子,我们其实已经把这唯一的一根地址线与两个存储单元AAA和BBB连上了。那么何时读AAA,何时读BBB?有一个办法:当地址线上的电压是高电压时我们读AAA,相反...原创 2018-05-14 11:00:30 · 6108 阅读 · 0 评论 -
While循环与getchar()组合巧妙清除缓存区内容
最近做题发现键入回车后,总会产生一些意料之外的结果……并未完全达到预期的目标,今日偶的解法,隧简单分析一波。先从一个简单的小程序开始,我们先忽略它糟糕的算法:#include<stdio.h>#include<stdlib.h>int main(void){ int i=1; printf(&am原创 2018-05-15 00:53:24 · 7865 阅读 · 2 评论 -
一个16位寄存器所能存储的数据的最大值为多少?
216−1216−12^{16}-1为什么?你可以用递归的思想反推:215+214+...+21+20=216−1215+214+...+21+20=216−12^{15}+2^{14}+...+2^{1}+2^{0}=2^{16}-1 即:214+213+...+21+20+1=215214+213+...+21+20+1=2152^{14}+2^{13}+...+2^{1}+...原创 2018-06-13 18:02:15 · 19426 阅读 · 1 评论 -
关于深浅copy的讨论
废话不多说,直接上例子: 可以看出: 当把变量a赋给变量b,在单独改变a时,b并不会改变,这和C语言中一致,为什么呢? 可以发现,当把变量a赋给变量b,a和b的地址是同样的。但是改变a的值时,a又重新生成了一个新的地址。故不能影响b的值。 补充: 如果没有把变量a赋给b,在改变a值后,a开辟出新地址,原地址中的值,会被Python中的“清洁工”即使清除,释放内存。那么当作用在...原创 2018-07-23 22:49:57 · 239 阅读 · 0 评论 -
Hash和字典
Hash一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小千输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。特征: hash值的计算过程是依据这个值的一些特征计算...原创 2018-07-24 12:31:08 · 4907 阅读 · 0 评论