在冯诺依曼体系结构中,计算机的3个特点中,有软件以二进制(2#)的形式表示,也就是数据以二进制的形式存入计算机中
其运算规则为
在有符号数中:1.xxx表示-0.xxx,1表示负号
上述的小数点是我们的认知,机器中没有,机器中只有01编码,所以都是人为告知题目,是小数还是整数
而在计算机中,机器码有四种表示方式
这里小数是在其有效数值后面加0,整数是在有效数值前面加0,
这样是因为不管加多少个0,其原本的有效数值大小都不会变
在定点数的加减法中,通常是用补码运算
即补码加法运算,a-b也算作a的补码+(-b)的补码
溢出:指机器数码无法表示出这个数字的大小
如上一个机器位数为8位,其中最高位的一位是符号位,那么它就无法表示出256这个数字
因为它最大只能表示2^7-1即127这个数字,而256是2^8,所以不能
如上,先拆分,写成二进制补码
然后把2个补码相加(1+1要进位)
将最后这个补码的结果转换成原码的形式
符号位不变,数值位取反,最后加个1
而这个原码等于
其结果不是60+80,且正数变成负数了,这就是溢出
这就是在单符号位情况中,2个正数相加,其结果为负数,或2负数加为正数,肯定都是溢出
超过了-2^7~2^7-1的范围,减1是因为有0
而双符号位的溢出中,00表示正,11表示负数,即2个位数来表示正负符号
即双符号位中除了00,11,出现01或10,这2个符号位数字不一样时,就是溢出
也就是,大端存放:最高字节放到最低地址,即最前面
逻辑上就是相反着,反着放
小端就是顺着放
这个浮点数有点像10进制里面的科学计数法,用来缩短特大数字的表示长度
上面,阶符就是10上面的8次方的那个8的前面的正负号,也可以是-8,即-8次方;阶符是——正负号
阶码就是8那个数字
数符,是1.8前面的正负号
尾数,是1.8
这里的数符,才是真正表示这个数字的正负号
10进制的科学计数法有多种表示方法,但一般规定小数点前面保留一位
右规只需要一次是因为,一次后双符号位就可以变成00或11
原码规格化后,无论正负,小数点后的第一位必须为1
补码是正1负0
这里用移码表示的话不用阶符,因为移码是全0到全1,它可以表示所有正负数的范围