计算机基础
各种装逼各种吹
成都的一名默默无名的go浪程序员
展开
-
面向对象的理解
//面向过程方法1(){ ... 方法2()}方法2(){ ... 方法3()}方法3(){ ...}//面向对象对象.方法1();对象.方法2();对象.方法3();原创 2018-08-28 09:57:26 · 95 阅读 · 0 评论 -
理解 二进制 补码
概述二进制理解了很久,写下自己的理解,我的理解细致的描述了我的思考过程,适合未理解二进制的小白,而只是回归二进制概率的,希望干错利落得到答案的,请点击二进制 百度百科理解互补定义一个规则,指定一个最大值,两个数相加等于这个最大值如:我定义12为最大值,在我定义的规则中,6于6互补,5与7互补这个规则还有一个漏洞,12为最大值了,那6+7=?,如果不定义最大值,它应该等于13所以,需要补充定义,我定义最小值为1,6+7=1,1-12形成一个环对这个环的理解,可以想象我们挂在墙上的时钟,12点一原创 2020-10-26 21:23:28 · 618 阅读 · 0 评论 -
二进制 零扩展与符号扩展
概述学计算机组成的时候遇到了,就写一下自己的理解应用场景在计算机组成中,少位二进制数和多位二进制数进行运算时,需要用到如1111(4位二进制)与11001100(8位二进制)相加或者其它运算时,4位的二进制需要进行扩展,才能与8位二进制运算零扩展高位直接补0的扩展,如1111变成00001111,补0并不影响计算结果,这个很好理解,但如果二进制数带了符号,就不一样了,因为最高位是符号位,所以1111就总一个负数,变成了一个正数00001111,由此,产生了符号扩展符号扩展高位直接补符号位,原创 2020-10-26 21:20:14 · 2380 阅读 · 0 评论 -
十进制乘法 位移运算 的表示
在计算机中 如何计算十进制25 * 10?预备知识: 4(十进制) * 2 = 100(二进制) * 2 = 100(二进制) << 1(左移一位) = 1000(二进制) = 8 (十进制)可以自行演示4(十进制)* 4 ; 得到的结论为 左移 1 位,即乘以2,左移两位,即乘以4,依次类推。右移即除。25 * 10 = 25 * 8 + 25 * 2= 转二进...原创 2018-08-21 09:39:52 · 3827 阅读 · 0 评论 -
为什么32位系统只能支持4G内存
预备知识:内存:计算机有两个存储空间,一个叫内存,一个叫硬盘;区别?试想,玩游戏时加个硬盘,能提高游戏性能吗?不能,但加内存可以,因为CPU只能直接操作内存,不能操作硬盘。玩游戏时,或者用软件时,都有个加载过程,就是把硬盘里的内容,传输到内存。32位:内存地址的位数。byte与bit:一个bit就是一个二进制位,如1111 0000,就是8bit,也叫8位;1byte = 8 bit,...原创 2018-08-21 10:23:23 · 2797 阅读 · 0 评论 -
计算机补码的理解
提出问题:计算机本质上是二进制电路,比较好作加法,但是不好作减法,人们需要将减法转化为加法。预备知识:负数的表示,计算机使用最高位代表符号位,如1001 = -1,0001 = 1。1 + (-1) = 1001 + 0001 = 1010 = -2,出现错误。说明在二进制中,不能直接在正数前面添负号,将它变为负数。来试试一个方法,数学中负数完整的表示为 -2 = 0 - 2;那么...原创 2018-08-21 18:38:13 · 173 阅读 · 0 评论 -
辗转相除法和更相减损法 定义,原理,Java实现以及优化
要求两个正整数的最大公约数有两种方法,辗转相除法和更相减损法。注:gcd(a,b)代表a和b的最大公约数。辗转相除法的定义:对于两个正整数a和b,其中a>b,r为a除以b的余数,gcd(a,b) = gcd(b,r);原理:设a,b的最大公约数为u,a = u · t1; b = u · t2; (t1 , t2 为某个数,满足等式要求,是多少并不重要,一定存在,因为u为a,b的...原创 2018-08-29 20:31:18 · 2579 阅读 · 0 评论