/ OPS / 题库 /

另类二进制数

另类二进制数

#描述#
<body>

<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family: 宋体">
当我们要用十进制数表达二进制数的时候,使用如下的实例转换:</span></p>
<p class="MsoNormal" style="margin-left: 31.5pt; margin-right: 0cm; margin-top: 6.0pt; margin-bottom: .0001pt">
<span lang="EN-US" style="font-family:"Courier New"">10011</span><sub><span lang="EN-US" style="font-family: Courier New">2</span></sub><span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:"Courier New"">1*2</span><sup><span lang="EN-US" style="font-family: Courier New">4</span></sup><span lang="EN-US" style="font-family:"Courier New"">+0*2</span><sup><span lang="EN-US" style="font-family: Courier New">3</span></sup><span lang="EN-US" style="font-family:"Courier New"">+0*2</span><sup><span lang="EN-US" style="font-family: Courier New">2</span></sup><span lang="EN-US" style="font-family:"Courier New"">+1*2</span><sup><span lang="EN-US" style="font-family: Courier New">1</span></sup><span lang="EN-US" style="font-family:"Courier New"">+1*2</span><sup><span lang="EN-US" style="font-family: Courier New">0</span></sup></p>
<p class="MsoNormal" style="text-indent: 36.75pt; margin-left: 31.5pt">
<span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:
"Courier New"">16+0+0+2+1</span></p>
<p class="MsoNormal" style="text-indent: 36.75pt; margin-left: 31.5pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 6.0pt">
<span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:"Courier New"">19</span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family: 宋体">
可是,有一种另类的二进制数,虽然也是逢</span><span lang="EN-US">2</span><span style="font-family: 宋体">进位,但其允许各位上其中有一个可以是</span><span lang="EN-US">2</span><span style="font-family: 宋体">,其成数的规则暂且不论,它到十进制数的转换却以如下的实例说明:</span></p>
<p class="MsoNormal" style="margin-left: 31.5pt; margin-right: 0cm; margin-top: 6.0pt; margin-bottom: .0001pt">
<span lang="EN-US" style="font-family:"Courier New"">10120</span><sub><span lang="EN-US" style="font-family: Courier New">2’</span></sub><span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:"Courier New"">1*(2</span><sup><span lang="EN-US" style="font-family: Courier New">5</span></sup><span lang="EN-US" style="font-family:"Courier New"">-1)+0*(2</span><sup><span lang="EN-US" style="font-family: Courier New">4</span></sup><span lang="EN-US" style="font-family:"Courier New"">-1)+1*(2</span><sup><span lang="EN-US" style="font-family: Courier New">3</span></sup><span lang="EN-US" style="font-family:"Courier New"">-1)+2*(2</span><sup><span lang="EN-US" style="font-family: Courier New">2</span></sup><span lang="EN-US" style="font-family:"Courier New"">-1)+0*(2</span><sup><span lang="EN-US" style="font-family: Courier New">1</span></sup><span lang="EN-US" style="font-family:"Courier New"">-1)</span></p>
<p class="MsoNormal" style="text-indent: 36.75pt; margin-left: 31.5pt">
<span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:
"Courier New"">31+0+7+6+0</span></p>
<p class="MsoNormal" style="text-indent: 36.75pt; margin-left: 31.5pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 6.0pt">
<span style="font-family: 宋体">=</span><span lang="EN-US" style="font-family:"Courier New"">44</span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family: 宋体">
该另类二进制数的前</span><span lang="EN-US">10</span><span style="font-family: 宋体">个数为</span><span lang="EN-US">0,
1, 2, 10, 11, 12, 20, 100, 101, 102</span><span style="font-family: 宋体">,显然与</span><span lang="EN-US">3</span><span style="font-family: 宋体">进制数不同,它的增</span><span lang="EN-US">1</span><span style="font-family: 宋体">操作是以先消去存在的</span><span lang="EN-US">2</span><span style="font-family: 宋体">为前提的,即将</span><span lang="EN-US">2</span><span style="font-family: 宋体">变成</span><span lang="EN-US">0</span><span style="font-family: 宋体">,而直接进位。若所有的位都是</span><span lang="EN-US">0</span><span style="font-family: 宋体">或</span><span lang="EN-US">1</span><span style="font-family: 宋体">,它才从个位开始增值。因此,这种数的操作优点是,加</span><span lang="EN-US">1</span><span style="font-family: 宋体">时最多只有一次进位,因而在某些应用上很有用。</span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span style="font-family: 宋体">
你的任务是编程将另类二进制数转换成十进制数。</span></p>
<p class="MsoNormal" style="text-indent:21.0pt"> </p>

</body>

#格式#
##输入格式##
输入数据中有一些行,每行中有一个数(位长≤31),若为0,则表示输入结束,否则就表示非负的另类二进制数。

##输出格式##
对于每个另类二进制数,输出其等价的十进制数,其十进制数最大不会超过2^31-1。

#样例1#
##样例输入1##

10120
200000000000000000000000000000
10
1000000000000000000000000000000
11
100
11111000001110000101101102000
0

##样例输出1##

44
2147483646
3
2147483647
4
7
1041110737

#限制#
1000ms
32768KB

#提示#

#来源#

信息

ID
1299
难度
5
分类
category1 点击显示
标签
递交数
0
已通过
0
通过率
?
上传者