首页 > 解决方案 > 开发一种有效的算法,使用伪代码将二进制字符串的文本表示形式转换为整数

问题描述

大家好,希望得到以下问题的帮助:

你要设计一个算法来描述以下内容:

  • 需要一个将二进制数的文本表示形式转换为整数的函数。二进制数可以是从一 (1) 到八 (8) 位的任何长度。请务必检查文本字符串是否仅包含 0 和 1。

例如:

Input            Output
101                5
1101001           105
10011R           Not a valid binary number

这是我迄今为止在伪代码中提出的内容...... PS完整的初学者

READ inputValue
    SET intValue = inputValue TO INTEGER
    SET n = 0
    WHILE n < 8 DO
       IF intValue = 1
          SET n = n + 1
           PRINT intValue
       ELSE IF intValue = 0
          PRINT intValue
          REPEAT 
          ELSE 
            PRINT Sorry we are not able to validate your input
          ENDIF
        ENDIF
    outValue = n.CALCULATE BINARY OUTPUT
    PRINT outValue

想知道是否有人可以提供一些关于回答这个问题的提示

标签: binarypseudocode

解决方案


您计算二进制数值的方式不正确。101代表1*2^2+0*2^1+1*2^0=5。

这是您如何阅读和转换一个样本的方法。

set n=0
set flag=valid
while read char into c and c not= end_of_line
  if c = '1'
    set n = 2*n+1
  else if c='0'
    set n=2*n
  else
    set flag=invalid
  endif
endwhile
if flag=invalid
   print Sorry we are not able to validate your input
else
   print n
endif

推荐阅读