发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种高效的浮点倒数/平方根倒数部件的设计方法,在多精度环境或精度可配置环境下设计实现一种可配置浮点倒数/平方根倒数设计方法,尽最大程度复用硬件资源,实现对浮点多种运算的支持。
(二)技术方案
为此,本发明提出的一种浮点数的倒数和/或平方根倒数运算方法,包括:
步骤1、根据输入的浮点数获取查找地址;
步骤2、根据所述查找地址从浮点数的倒数或平方根倒数尾数查找表中进行查找,得到所述浮点数的倒数或平方根倒数的尾数;其中,所述浮点数的倒数尾数查找表根据以下公式构造:
所述浮点数的平方根倒数尾数查找表根据以下公式构造:
Ex=2N时,
Ex=2N+1时,
其中,my为所述浮点数的倒数或平方根倒数的尾数,mx为所述浮点数的尾数,a为mx的位数,b为my的位数;Ex为所述浮点数的指数,N为整数;
步骤3、计算得到所述浮点数的倒数或平方根倒数的指数,其中,所述浮点数的倒数的指数如下计算:
Ey=(W-1)-Ex
所述浮点数的平方根倒数的指数如下计算:
其中,Ey为所述浮点数的倒数或平方根倒数的指数,W为所述浮点数的倒数或平方根倒数的移码;
步骤4、计算得到所述浮点数的倒数或平方根倒数的符号位,其中,所述浮点数的倒数的符号位与所述浮点数的符号位相同,所述浮点数的平方根倒数当所述浮点数为正数时才有效,且其符号位为0;
步骤5、根据所述浮点数的倒数或平方根倒数的指数、尾数和符号位得到所述浮点数的倒数或平方根倒数的运算结果。
本发明还提出了一种浮点数的倒数和/或平方根倒数运算装置,包括:
查找地址获取模块,其根据输入的浮点数获取查找地址;
尾数获取模块,其根据所述查找地址从浮点数的倒数或平方根倒数尾数查找表中进行查找,得到所述浮点数的倒数或平方根倒数的尾数;其中,所述浮点数的倒数尾数查找表根据以下公式构造:
所述浮点数的平方根倒数尾数查找表根据以下公式构造:
Ex=2N时,
Ex=2N+1时,
其中,my为所述浮点数的倒数或平方根倒数的尾数,mx为所述浮点数的尾数,a为mx的位数,b为my的位数;Ex为所述浮点数的指数,N为整数;
指数获取模块,其计算得到所述浮点数的倒数或平方根倒数的指数,其中,所述浮点数的倒数的指数如下计算:
Ey=(W-1)-Ex
所述浮点数的平方根倒数的指数如下计算:
其中,Ey为所述浮点数的倒数或平方根倒数的指数,W为所述浮点数的倒数或平方根倒数的移码;
符号位获取模块,其计算得到所述浮点数的倒数或平方根倒数的符号位,其中,所述浮点数的倒数的符号位与所述浮点数的符号位相同,所述浮点数的平方根倒数当所述浮点数为正数时才有效,且其符号位为0;
结果输出模块,其根据所述浮点数的倒数或平方根倒数的指数、尾数和符号位得到所述浮点数的倒数或平方根倒数的运算结果。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
本发明提出了一种浮点倒数和/或平方根倒数的计算方法其通过硬件查表获得尾数计算结果,该硬件查找表可配置可复用,根据不同精度要求获得不同位宽输出结果,通过计算获得指数部分结果,最终得到一个硬件计算结果供软件迭代使用。本发明适用于硬件查表配合软件迭代实现高精度浮点倒数、平方根倒数及和其相关的浮点除法等运算,运算精度高,硬件资源消耗小。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明提出了一种可复用硬件资源进行浮点倒数/平方根倒数运算的方法,以支持在不同精度标准下输出不同精度结果,且硬件资源高度复用,最大程度的降低硬件开销。
本发明提出的一种浮点数的倒数/平方根倒数运算方法,包括:
步骤1、根据输入的浮点数构造查找地址;
步骤2、根据所述查找地址从浮点数的倒数或平方根倒数尾数查找表中进行查找,得到所述浮点数的倒数或平方根倒数的尾数;其中,所述浮点数的倒数尾数查找表根据以下公式构造:
所述浮点数的平方根倒数尾数查找表根据以下公式构造:
Ex=2N时,
Ex=2N+1时,
其中,my为所述浮点数的倒数或平方根倒数的尾数,mx为所述浮点数的尾数,a为mx的位数,b为my的位数;Ex为所述浮点数的指数,N为整数;
步骤3、计算得到所述浮点数的倒数或平方根倒数的指数,其中,所述浮点数的倒数的指数如下计算:
Ey=(W-1)-Ex
所述浮点数的平方根倒数的指数如下计算:
其中,Ey为所述浮点数的倒数或平方根倒数的指数,W为所述浮点数的倒数或平方根倒数的移码;
步骤4、计算得到所述浮点数的倒数或平方根倒数的符号位,其中,所述浮点数的倒数的符号位与所述浮点数的符号位相同,所述浮点数的平方根倒数当所述浮点数为正数时才有效,且其符号位为0;
步骤5、根据所述浮点数的倒数或平方根倒数的指数、尾数和符号位得到所述浮点数的倒数或平方根倒数的运算结果。
下面详细介绍上述方法步骤。
假如要计算浮点数Rm的倒数1/Rm,设x为输入Rm,y为其倒数,Mx为x的浮点表示法的尾数(不含隐含位),My为y的浮点表示法的尾数(不含隐含位);Ex为x的浮点表示法的指数,Ey为y的浮点表示法的指数,W为移码的数值。
y=1/x,令x=(-1)s*(1+Mx)*2(Ex-W),其中,
-W<Ex-W<(W+1) (式1)
y的符号位与x的符号位相同;
y=1/x=1/((1+Mx)×2(Ex-W))
=1/(1+Mx)×2(W-Ex)
=2/(1+Mx)×2((W-1)-Ex)
=(1+My)×2Ey
那么,尾数满足:
1+My=2/(1+Mx) (式2)
所以,
My=2/(1+Mx)-1=(1-Mx)/(1+Mx) (式3)
指数:
Ey=(W-1)-Ex (式4)
式2,式3,式4通用,不随计算精度的改变而变化。
mx取x尾数的高a位,my为y尾数的高b位,则由式2可得:
即
(式5)。
至此可建立mx的查找表。该查找表中查找数据的个数由x尾数取得位数a决定,即为2a,查找表每一项的大小由y尾数取得位数b决定,则查找表大小为:2a×b,可以看出查找表的大小和所取的x的尾数和y的尾数精度都有关,与a呈指数增长,与b呈倍数增长,原则上x的尾数所取位宽越大,y的尾数位宽也应越大,最终计算的结果x倒数的精度越高,查找表也就越大,查找时间和存储空间也就相应加大,实际应用中需权衡考虑。
假如要计算浮点数Rm的平方根倒数设x为Rm,y为其平方根倒数,设W为移码的数值。设x为输入Rm,y为其平方根倒数,Mx为x的浮点表示法的尾数(不含隐含位),My为y的浮点表示法的尾数(不含隐含位);Ex为x的浮点表示法的指数,Ey为y的浮点表示法的指数。
令
即
(1)当Ex=2N时,
(2)当Ex=2N+1时,
计算平方根倒数,参加运算的数据为正数才有效,且其符号位输出为0。
分析y的指数,Ex为奇数和偶数时可以统一,即
y的尾数查找表受Ex的影响,Ex为奇数和偶数时不一样,为此需借助Ex建立两个查找表,由于Ex的奇偶性由最低位决定,可以考虑在取x高a位尾数时,同时把Ex的最低位取上,那么mx为(a+1)位=Ex最低位与x尾数高a位进行拼接,y取高b位尾数;其中,0x1表示十六进制1,Ex&0x1表示Ex与1进行与操作,如果Ex是奇数,则与1进行与操作结果为1,偶数的话结果为0。
所以,(1)当Ex=2N时,即mx<2a时,
所以:
所以:
(2)当Ex=2N+1时,即mx≥2a时,
所以:
所以:
浮点倒数和平方根倒数尾数查找表结构如图1所示。101为查找地址输入,即上面提到倒数运算的所述浮点数的高a位尾数,平方根倒数运算的所述浮点数的指数最低位数据和高a位尾数拼在一起的(a+1)位数据。102为查找表结构,将101的数值和地址值进行比较,从相匹配地址值中得到有效数据传输给103,103将查找结果输出。
浮点倒数和平方根倒数在实现时不同条件下所设计的查找表大小和精度会有所不同,比如设单精度时查找地址为7位,查找精度为8位,双精度时查找地址为8位,查找精度为9位。为达到该目的,设计两个查找表非常浪费资源,对输入输出做一下处理就可复用精度最高的浮点数对应的一个查找表来实现,如低精度的计算就可以复用最高精度浮点数计算对应的查找表,这样就可以节省硬件资源。处理方法如图2所示。201在查找地址输入基础上,增加查找地址宽度指示标识,指明当前查找地址为何种位宽,202根据201提供的地址位宽指示标识生成新的查找地址,如果查找地址为低位宽标识,则查找用的地址为输入地址中从高位截取相应位宽数据,与低位拼接0组成的地址位宽数据,如果为高位宽标识,则直接为查找地址输入,203根据202生成的新地址进行匹配,输出对应地址数据,如果为低位宽地址查找则对查找表的查找为间隔查找,其查找地址部分低位恒为0,如果为高位宽数据,所有查找表项都和结果相关。204根据宽度指示对203输出的结果精度进行处理,如果为高位宽输出,将203的结果直接输出,如果为低位宽输出,则对203的输出结果从高位截取对应低位宽数据,即对应输出精度的位宽,低位补0输出,205即为输出的最终查找结果。
下面以一个具体的实施例来说明本发明提出的上述方法。
假设要设计一个单精度支持查找地址为7位,输出数据精度为8位,双精度时查找地址为8位,输出数据精度为9位的浮点倒数和平方根倒数的运算结果。进行倒数计算的输入查找地址,单精度计算时,查找地址为尾数的高7位与一位0拼接而成,双精度计算时,查找地址为尾数的高8位。进行平方根倒数计算的输入查找地址,最高位为指数的最低位,单精度计算时,查找地址的低7位为尾数的高6位与一位0拼接而成,双精度计算时,查找地址的低7位为尾数的高7位。
根据以上所述技术方案,浮点倒数的符号位与输入浮点数的符号位相同,指数位计算按照:Ey=(W-1)-Ex实现,单精度时移码W为127,双精度时移码W为1023,所以在进行单精度运算时,Ey=126-Ex,在进行双精度运算时Ey=1022-Ex。尾数查找表构造按照:
构造,即my=(29×29)/(28+mx)-29,根据此公式计算得到的查找表如下表1所示。在进行单精度运算时,对输入查找地址进行尾数最低位补0处理,输出结果为查找表中数据的高8位与一位0拼接,查找结果如表1中隔行加粗部分所示:
表1:
序号 |
查找地址 |
数据 |
0 |
00000000 |
111111111 |
1 |
00000001 |
111111100 |
2 |
00000010 |
111111000 |
3 |
00000011 |
111110100 |
4 |
00000100 |
111110000 |
5 |
00000101 |
111101100 |
6 |
00000110 |
111101000 |
7 |
00000111 |
111100100 |
8 |
00001000 |
111100000 |
9 |
00001001 |
111011101 |
10 |
00001010 |
111011001 |
11 |
00001011 |
111010101 |
12 |
00001100 |
111010010 |
13 |
00001101 |
111001110 |
14 |
00001110 |
111001010 |
15 |
00001111 |
111000111 |
16 |
00010000 |
111000011 |
17 |
00010001 |
111000000 |
18 |
00010010 |
110111100 |
19 |
00010011 |
110111001 |
20 |
00010100 |
110110101 |
21 |
00010101 |
110110010 |
22 |
00010110 |
110101110 |
23 |
00010111 |
110101011 |
24 |
00011000 |
110101000 |
25 |
00011001 |
110100100 |
26 |
00011010 |
110100001 |
27 |
00011011 |
110011110 |
28 |
00011100 |
110011011 |
29 |
00011101 |
110010111 |
30 |
00011110 |
110010100 |
31 |
00011111 |
110010001 |
32 |
00100000 |
110001110 |
33 |
00100001 |
110001011 |
34 |
00100010 |
110000111 |
35 |
00100011 |
110000100 |
36 |
00100100 |
110000001 |
37 |
00100101 |
101111110 |
38 |
00100110 |
101111011 |
39 |
00100111 |
101111000 |
40 |
00101000 |
101110101 |
41 |
00101001 |
101110010 |
42 |
00101010 |
101101111 |
43 |
00101011 |
101101100 |
44 |
00101100 |
101101001 |
45 |
00101101 |
101100110 |
46 |
00101110 |
101100100 |
47 |
00101111 |
101100001 |
48 |
00110000 |
101011110 |
49 |
00110001 |
101011011 |
50 |
00110010 |
101011000 |
51 |
00110011 |
101010101 |
52 |
00110100 |
101010011 |
53 |
00110101 |
101010000 |
54 |
00110110 |
101001101 |
55 |
00110111 |
101001010 |
56 |
00111000 |
101001000 |
57 |
00111001 |
101000101 |
58 |
00111010 |
101000010 |
59 |
00111011 |
101000000 |
60 |
00111100 |
100111101 |
61 |
00111101 |
100111010 |
62 |
00111110 |
100111000 |
63 |
00111111 |
100110101 |
64 |
01000000 |
100110011 |
65 |
01000001 |
100110000 |
66 |
01000010 |
100101110 |
67 |
01000011 |
100101011 |
68 |
01000100 |
100101001 |
69 |
01000101 |
100100110 |
70 |
01000110 |
100100100 |
71 |
01000111 |
100100001 |
72 |
01001000 |
100011111 |
73 |
01001001 |
100011100 |
74 |
01001010 |
100011010 |
75 |
01001011 |
100010111 |
76 |
01001100 |
100010101 |
77 |
01001101 |
100010011 |
78 |
01001110 |
100010000 |
79 |
01001111 |
100001110 |
80 |
01010000 |
100001100 |
81 |
01010001 |
100001001 |
82 |
01010010 |
100000111 |
83 |
01010011 |
100000101 |
84 |
01010100 |
100000011 |
85 |
01010101 |
100000000 |
86 |
01010110 |
011111110 |
87 |
01010111 |
011111100 |
88 |
01011000 |
011111010 |
89 |
01011001 |
011110111 |
90 |
01011010 |
011110101 |
91 |
01011011 |
011110011 |
92 |
01011100 |
011110001 |
93 |
01011101 |
011101111 |
94 |
01011110 |
011101100 |
95 |
01011111 |
011101010 |
96 |
01100000 |
011101000 |
97 |
01100001 |
011100110 |
98 |
01100010 |
011100100 |
99 |
01100011 |
011100010 |
100 |
01100100 |
011100000 |
101 |
01100101 |
011011110 |
102 |
01100110 |
011011100 |
103 |
01100111 |
011011010 |
104 |
01101000 |
011011000 |
105 |
01101001 |
011010110 |
106 |
01101010 |
011010100 |
107 |
01101011 |
011010010 |
108 |
01101100 |
011010000 |
109 |
01101101 |
011001110 |
110 |
01101110 |
011001100 |
111 |
01101111 |
011001010 |
112 |
01110000 |
011001000 |
113 |
01110001 |
011000110 |
114 |
01110010 |
011000100 |
115 |
01110011 |
011000010 |
116 |
01110100 |
011000000 |
117 |
01110101 |
010111110 |
118 |
01110110 |
010111100 |
119 |
01110111 |
010111011 |
120 |
01111000 |
010111001 |
121 |
01111001 |
010110111 |
122 |
01111010 |
010110101 |
123 |
01111011 |
010110011 |
124 |
01111100 |
010110001 |
125 |
01111101 |
010110000 |
126 |
01111110 |
010101110 |
127 |
01111111 |
010101100 |
128 |
10000000 |
010101010 |
129 |
10000001 |
010101000 |
130 |
10000010 |
010100111 |
131 |
10000011 |
010100101 |
132 |
10000100 |
010100011 |
133 |
10000101 |
010100001 |
134 |
10000110 |
010100000 |
135 |
10000111 |
010011110 |
136 |
10001000 |
010011100 |
137 |
10001001 |
010011011 |
138 |
10001010 |
010011001 |
139 |
10001011 |
010010111 |
140 |
10001100 |
010010101 |
141 |
10001101 |
010010100 |
142 |
10001110 |
010010010 |
143 |
10001111 |
010010001 |
144 |
10010000 |
010001111 |
145 |
10010001 |
010001101 |
146 |
10010010 |
010001100 |
147 |
10010011 |
010001010 |
148 |
10010100 |
010001000 |
149 |
10010101 |
010000111 |
150 |
10010110 |
010000101 |
151 |
10010111 |
010000100 |
152 |
10011000 |
010000010 |
153 |
10011001 |
010000000 |
154 |
10011010 |
001111111 |
155 |
10011011 |
001111101 |
156 |
10011100 |
001111100 |
157 |
10011101 |
001111010 |
158 |
10011110 |
001111001 |
159 |
10011111 |
001110111 |
160 |
10100000 |
001110110 |
161 |
10100001 |
001110100 |
162 |
10100010 |
001110011 |
163 |
10100011 |
001110001 |
164 |
10100100 |
001110000 |
165 |
10100101 |
001101110 |
166 |
10100110 |
001101101 |
167 |
10100111 |
001101011 |
168 |
10101000 |
001101010 |
169 |
10101001 |
001101000 |
170 |
10101010 |
001100111 |
171 |
10101011 |
001100101 |
172 |
10101100 |
001100100 |
173 |
10101101 |
001100011 |
174 |
10101110 |
001100001 |
175 |
10101111 |
001100000 |
176 |
10110000 |
001011110 |
177 |
10110001 |
001011101 |
178 |
10110010 |
001011100 |
179 |
10110011 |
001011010 |
180 |
10110100 |
001011001 |
181 |
10110101 |
001010111 |
182 |
10110110 |
001010110 |
183 |
10110111 |
001010101 |
184 |
10111000 |
001010011 |
185 |
10111001 |
001010010 |
186 |
10111010 |
001010001 |
187 |
10111011 |
001001111 |
188 |
10111100 |
001001110 |
189 |
10111101 |
001001101 |
190 |
10111110 |
001001011 |
191 |
10111111 |
001001010 |
192 |
11000000 |
001001001 |
193 |
11000001 |
001000111 |
194 |
11000010 |
001000110 |
195 |
11000011 |
001000101 |
196 |
11000100 |
001000011 |
197 |
11000101 |
001000010 |
198 |
11000110 |
001000001 |
199 |
11000111 |
001000000 |
200 |
11001000 |
000111110 |
201 |
11001001 |
000111101 |
202 |
11001010 |
000111100 |
203 |
11001011 |
000111011 |
204 |
11001100 |
000111001 |
205 |
11001101 |
000111000 |
206 |
11001110 |
000110111 |
207 |
11001111 |
000110110 |
208 |
11010000 |
000110100 |
209 |
11010001 |
000110011 |
210 |
11010010 |
000110010 |
211 |
11010011 |
000110001 |
212 |
11010100 |
000110000 |
213 |
11010101 |
000101110 |
214 |
11010110 |
000101101 |
215 |
11010111 |
000101100 |
216 |
11011000 |
000101011 |
217 |
11011001 |
000101010 |
218 |
11011010 |
000101001 |
219 |
11011011 |
000100111 |
220 |
11011100 |
000100110 |
221 |
11011101 |
000100101 |
222 |
11011110 |
000100100 |
223 |
11011111 |
000100011 |
224 |
11100000 |
000100010 |
225 |
11100001 |
000100000 |
226 |
11100010 |
000011111 |
227 |
11100011 |
000011110 |
228 |
11100100 |
000011101 |
229 |
11100101 |
000011100 |
230 |
11100110 |
000011011 |
231 |
11100111 |
000011010 |
232 |
11101000 |
000011001 |
233 |
11101001 |
000011000 |
234 |
11101010 |
000010110 |
235 |
11101011 |
000010101 |
236 |
11101100 |
000010100 |
237 |
11101101 |
000010011 |
238 |
11101110 |
000010010 |
239 |
11101111 |
000010001 |
240 |
11110000 |
000010000 |
241 |
11110001 |
000001111 |
242 |
11110010 |
000001110 |
243 |
11110011 |
000001101 |
244 |
11110100 |
000001100 |
245 |
11110101 |
000001011 |
246 |
11110110 |
000001010 |
247 |
11110111 |
000001001 |
248 |
11111000 |
000001000 |
249 |
11111001 |
000000111 |
250 |
11111010 |
000000110 |
251 |
11111011 |
000000101 |
252 |
11111100 |
000000100 |
253 |
11111101 |
000000011 |
254 |
11111110 |
000000010 |
255 |
11111111 |
000000001 |
浮点平方根倒数计算时,在参与运算的数据为正数时,计算结果才有效,符号位输出为0,指数位计算按照:
实现,单精度时移码W为127,双精度时移码W为1023,所以在进行单精度运算时,Ey=63-(Ex+(Ex&0x1))>>1,在进行双精度运算时Ey=511-(Ex+(Ex&0x1))>>1。尾数查找表构造按照:Ex=2N时,Ex=2N+1时,构造,即Ex=2N时, Ex=2N+1时, 根据此公式计算得到的查找表如下表2所示。在进行单精度运算时,对输入地址进行尾数最低位补0处理,输出结果为查找表中数据的高8位与一位0拼接,查找结果如下表2中隔行加粗部分所示:
表2:
序号 |
查找地址 |
数据 |
0 |
00000000 |
011010100 |
1 |
00000001 |
011010001 |
2 |
00000010 |
011001110 |
3 |
00000011 |
011001011 |
4 |
00000100 |
011001001 |
5 |
00000101 |
011000110 |
6 |
00000110 |
011000011 |
7 |
00000111 |
011000001 |
8 |
00001000 |
010111110 |
9 |
00001001 |
010111011 |
10 |
00001010 |
010111001 |
11 |
00001011 |
010110110 |
12 |
00001100 |
010110100 |
13 |
00001101 |
010110001 |
14 |
00001110 |
010101111 |
15 |
00001111 |
010101101 |
16 |
00010000 |
010101010 |
17 |
00010001 |
010101000 |
18 |
00010010 |
010100101 |
19 |
00010011 |
010100011 |
20 |
00010100 |
010100001 |
21 |
00010101 |
010011111 |
22 |
00010110 |
010011100 |
23 |
00010111 |
010011010 |
24 |
00011000 |
010011000 |
25 |
00011001 |
010010110 |
26 |
00011010 |
010010100 |
27 |
00011011 |
010010001 |
28 |
00011100 |
010001111 |
29 |
00011101 |
010001101 |
30 |
00011110 |
010001011 |
31 |
00011111 |
010001001 |
32 |
00100000 |
010000111 |
33 |
00100001 |
010000101 |
34 |
00100010 |
010000011 |
35 |
00100011 |
010000001 |
36 |
00100100 |
001111111 |
37 |
00100101 |
001111101 |
38 |
00100110 |
001111011 |
39 |
00100111 |
001111001 |
40 |
00101000 |
001111000 |
41 |
00101001 |
001110110 |
42 |
00101010 |
001110100 |
43 |
00101011 |
001110010 |
44 |
00101100 |
001110000 |
45 |
00101101 |
001101110 |
46 |
00101110 |
001101101 |
47 |
00101111 |
001101011 |
48 |
00110000 |
001101001 |
49 |
00110001 |
001100111 |
50 |
00110010 |
001100110 |
51 |
00110011 |
001100100 |
52 |
00110100 |
001100010 |
53 |
00110101 |
001100000 |
54 |
00110110 |
001011111 |
55 |
00110111 |
001011101 |
56 |
00111000 |
001011011 |
57 |
00111001 |
001011010 |
58 |
00111010 |
001011000 |
59 |
00111011 |
001010111 |
60 |
00111100 |
001010101 |
61 |
00111101 |
001010011 |
62 |
00111110 |
001010010 |
63 |
00111111 |
001010000 |
64 |
01000000 |
001001111 |
65 |
01000001 |
001001101 |
66 |
01000010 |
001001100 |
67 |
01000011 |
001001010 |
68 |
01000100 |
001001001 |
69 |
01000101 |
001000111 |
70 |
01000110 |
001000110 |
71 |
01000111 |
001000100 |
72 |
01001000 |
001000011 |
73 |
01001001 |
001000001 |
74 |
01001010 |
001000000 |
75 |
01001011 |
000111110 |
76 |
01001100 |
000111101 |
77 |
01001101 |
000111100 |
78 |
01001110 |
000111010 |
79 |
01001111 |
000111001 |
80 |
01010000 |
000111000 |
81 |
01010001 |
000110110 |
82 |
01010010 |
000110101 |
83 |
01010011 |
000110011 |
84 |
01010100 |
000110010 |
85 |
01010101 |
000110001 |
86 |
01010110 |
000101111 |
87 |
01010111 |
000101110 |
88 |
01011000 |
000101101 |
89 |
01011001 |
000101100 |
90 |
01011010 |
000101010 |
91 |
01011011 |
000101001 |
92 |
01011100 |
000101000 |
93 |
01011101 |
000100111 |
94 |
01011110 |
000100101 |
95 |
01011111 |
000100100 |
96 |
01100000 |
000100011 |
97 |
01100001 |
000100010 |
98 |
01100010 |
000100000 |
99 |
01100011 |
000011111 |
100 |
01100100 |
000011110 |
101 |
01100101 |
000011101 |
102 |
01100110 |
000011100 |
103 |
01100111 |
000011010 |
104 |
01101000 |
000011001 |
105 |
01101001 |
000011000 |
106 |
01101010 |
000010111 |
107 |
01101011 |
000010110 |
108 |
01101100 |
000010101 |
109 |
01101101 |
000010100 |
110 |
01101110 |
000010011 |
111 |
01101111 |
000010001 |
112 |
01110000 |
000010000 |
113 |
01110001 |
000001111 |
114 |
01110010 |
000001110 |
115 |
01110011 |
000001101 |
116 |
01110100 |
000001100 |
117 |
01110101 |
000001011 |
118 |
01110110 |
000001010 |
119 |
01110111 |
000001001 |
120 |
01111000 |
000001000 |
121 |
01111001 |
000000111 |
122 |
01111010 |
000000110 |
123 |
01111011 |
000000101 |
124 |
01111100 |
000000100 |
125 |
01111101 |
000000011 |
126 |
01111110 |
000000010 |
127 |
01111111 |
000000001 |
128 |
10000000 |
111111111 |
129 |
10000001 |
111111100 |
130 |
10000010 |
111111000 |
131 |
10000011 |
111110100 |
132 |
10000100 |
111110000 |
133 |
10000101 |
111101100 |
134 |
10000110 |
111101000 |
135 |
10000111 |
111100101 |
136 |
10001000 |
111100001 |
137 |
10001001 |
111011101 |
138 |
10001010 |
111011010 |
139 |
10001011 |
111010110 |
140 |
10001100 |
111010011 |
141 |
10001101 |
111001111 |
142 |
10001110 |
111001100 |
143 |
10001111 |
111001000 |
144 |
10010000 |
111000101 |
145 |
10010001 |
111000010 |
146 |
10010010 |
110111110 |
147 |
10010011 |
110111011 |
148 |
10010100 |
110111000 |
149 |
10010101 |
110110101 |
150 |
10010110 |
110110001 |
151 |
10010111 |
110101110 |
152 |
10011000 |
110101011 |
153 |
10011001 |
110101000 |
154 |
10011010 |
110100101 |
155 |
10011011 |
110100010 |
156 |
10011100 |
110011111 |
157 |
10011101 |
110011100 |
158 |
10011110 |
110011001 |
159 |
10011111 |
110010110 |
160 |
10100000 |
110010011 |
161 |
10100001 |
110010001 |
162 |
10100010 |
110001110 |
163 |
10100011 |
110001011 |
164 |
10100100 |
110001000 |
165 |
10100101 |
110000101 |
166 |
10100110 |
110000011 |
167 |
10100111 |
110000000 |
168 |
10101000 |
101111101 |
169 |
10101001 |
101111011 |
170 |
10101010 |
101111000 |
171 |
10101011 |
101110101 |
172 |
10101100 |
101110011 |
173 |
10101101 |
101110000 |
174 |
10101110 |
101101110 |
175 |
10101111 |
101101011 |
176 |
10110000 |
101101001 |
177 |
10110001 |
101100110 |
178 |
10110010 |
101100100 |
179 |
10110011 |
101100001 |
180 |
10110100 |
101011111 |
181 |
10110101 |
101011101 |
182 |
10110110 |
101011010 |
183 |
10110111 |
101011000 |
184 |
10111000 |
101010110 |
185 |
10111001 |
101010011 |
186 |
10111010 |
101010001 |
187 |
10111011 |
101001111 |
188 |
10111100 |
101001100 |
189 |
10111101 |
101001010 |
190 |
10111110 |
101001000 |
191 |
10111111 |
101000110 |
192 |
11000000 |
101000100 |
193 |
11000001 |
101000001 |
194 |
11000010 |
100111111 |
195 |
11000011 |
100111101 |
196 |
11000100 |
100111011 |
197 |
11000101 |
100111001 |
198 |
11000110 |
100110111 |
199 |
11000111 |
100110101 |
200 |
11001000 |
100110011 |
201 |
11001001 |
100110001 |
202 |
11001010 |
100101111 |
203 |
11001011 |
100101101 |
204 |
11001100 |
100101011 |
205 |
11001101 |
100101001 |
206 |
11001110 |
100100111 |
207 |
11001111 |
100100101 |
208 |
11010000 |
100100011 |
209 |
11010001 |
100100001 |
210 |
11010010 |
100011111 |
211 |
11010011 |
100011101 |
212 |
11010100 |
100011011 |
213 |
11010101 |
100011001 |
214 |
11010110 |
100010111 |
215 |
11010111 |
100010110 |
216 |
11011000 |
100010100 |
217 |
11011001 |
100010010 |
218 |
11011010 |
100010000 |
219 |
11011011 |
100001110 |
220 |
11011100 |
100001101 |
221 |
11011101 |
100001011 |
222 |
11011110 |
100001001 |
223 |
11011111 |
100000111 |
224 |
11100000 |
100000110 |
225 |
11100001 |
100000100 |
226 |
11100010 |
100000010 |
227 |
11100011 |
100000000 |
228 |
11100100 |
011111111 |
229 |
11100101 |
011111101 |
230 |
11100110 |
011111011 |
231 |
11100111 |
011111010 |
232 |
11101000 |
011111000 |
233 |
11101001 |
011110110 |
234 |
11101010 |
011110101 |
235 |
11101011 |
011110011 |
236 |
11101100 |
011110010 |
237 |
11101101 |
011110000 |
238 |
11101110 |
011101110 |
239 |
11101111 |
011101101 |
240 |
11110000 |
011101011 |
241 |
11110001 |
011101010 |
242 |
11110010 |
011101000 |
243 |
11110011 |
011100111 |
244 |
11110100 |
011100101 |
245 |
11110101 |
011100100 |
246 |
11110110 |
011100010 |
247 |
11110111 |
011100001 |
248 |
11111000 |
011011111 |
249 |
11111001 |
011011110 |
250 |
11111010 |
011011100 |
251 |
11111011 |
011011011 |
252 |
11111100 |
011011001 |
253 |
11111101 |
011011000 |
254 |
11111110 |
011010110 |
255 |
11111111 |
011010101 |
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。