Posts

Showing posts from January, 2023

二进制加减法归纳

首先,加减法的基础:  计算机以补码作为计算基础:  不论正负数,最高位永远代表符号位,正数的符号位为0,负数为1。  正数的补码就是其本身,即01011为01011.  负数的补码略微复杂,我自己比较喜欢的计算方式为:    首先最高位是符号位1,以4bit为例,那么1000就代表着 -1*2^3=-8。    其余位按正常处理,如1011就是 -8+2+1=-5。  如果计算机有很多富裕的位,那么正数需要将富裕的最高位全部补0,负数全部补1。正数很好理解,负数全部补1可以理解为:     如1011,如果增加一位最高位补1,那么新的最高位(2^4)就是之前最高位(2^3)的两倍,由于2^3不再是最高位,所以其符号变为正号,新最高两位的数字和仍然是-2^3,并不会发生变化,如果再增加最高位,同理,新最高位是旧最高位的两倍,即2^5=2*2^4=2*2*2^3,而其后两位2^4+2^3=3*2^3,和最高位的计算和仍然是-8。也就是说,不论如何增高位的1,在补码的计算规则下,高位1的计算和永远是不变的。     本质上,这是由于:比如11111=-1,当每一位都是1的时候,值为-1,其余负值都是在此基础上去减去对应位的数值。所有不论前面有多少位是1,并不影响后续位需要扣除的值。    所以,001011=01011,             11011=1011=-16+8+2+1=-5。 溢出: 当符号位不同的数字相加肯定不会溢出,因为最终数一定会比原来某一个数小。 当符号位相同的数字相减肯定不会溢出,因为减法的本质是加上一个负数,即两个符号位不同的数字相加。 只有两个数字都很大的时候,相加或相减有可能发生溢出,具体的归纳可以查询书籍。

Little-Endian&Big-Endian

 大端格式与小端格式: 如数据 0x01020304 在内存中,如若为小端格式则,低位内存存储低位数据,高位内存存储高位数据: 地址  4000  4001  4002  4003 对应  04        03      02       01 大端格式则相反。 目前主流CPU均采用小端格式。

对MOSFET的电压曲线的归纳

最基本的: 只有VDD: 只存在漏电流。 VDD,VG共同作用: 当VG<Vth时,除了漏电流,并不存在电子的流动,所以实际上能检测到的电流也就是漏电流,但此时的漏电流可能会略比只存在VDD时的漏电流略大。 当VG>Vth, 电子开始受到Gate极的电压的吸引,形成导电沟道,而由于VDD存在电压,所以形成导电沟道的电子受到VDD的吸引,形成电流,电流方向为Drain to source。 预夹断: 在VG>Vth的情况下,VDD不断增加,当VDD=VG-Vth时,此时,VDD的电压便和导电沟道的正中间的电压相等,电子不再集中像Gate极靠拢,也就是电子会逐渐在Drain极附近形成包围圈,从而使得从Source导向Drain极的电子数量变少,所以导电沟道的电子无法再不断显著增加。这便是预夹断形成的本质原因,从而使得MOSFET进入saturation区。 如果此时不断增加VDD,聚集在VDD的电子会越来越多,也就是导电沟道越来越短,从而Ids的值基本不再增加。 关于预夹断的可以从以下URL中寻得更多介绍与讲解: http://www.kiaic.com/article/detail/2672.htm