首先要明确这几个词的概念。废话不多说,直接上例子:采用32位的有符号定点数表示方法,第一位表示符号位(0是正数,1是负数),因此还剩31个位置来表示数据,具体整数部分与小数部分是几位,看自己设定。我们下面假设整数部分2位(因为-pi~pi=-3.14~3.14,2位可以表示3),29位表示小数。
Exp1:
①1.5=1+0.5=>0(符号位)_01(整数位)_0.5*2^29(小数位)=0(符号位)_01(整数位)_1,0000,0000,0000,0000,0000,0000,0000(小数位)=00110000000000000000000000000000=30000000'h('h表示16进制)
②负数是正数的补码,即反码+1:补码=反码(二进制取反即可)+1
由于1.5=0_01_10000000000000000000000000000,所以其反码为1_10_0,1111,1111,1111,1111,1111,1111,1111,所以其补码为1_10_1,0000,0000,0000,0000,0000,0000,0000,所以
-1.5=11010000000000000000000000000000=D0000000'h
Exp2:
120°=120/180*pi=2.094395102393195=2+(0.094395102393195*2^29)=0_10_int(50677984.71016798224384)=0_10_50677985(化成2进制)=0_10_0,0011,0000,0101,0100,1000,1110,0001=01000011000001010100100011100001=430548E1'h
-120°=-120/180*pi=-2.094395102393195=1_01_1,1100,1111,1010,1011,0111,0001,1110=10111100111110101011011100011110=BCFAB71E'h