2016-11-17 2 views
0

Я занимаюсь разработкой так называемой простой программой pep8, которая преобразует базу 2 номера в базу 10.Pep8 - Base 2 до 10 Base конвертера

Ниже приведены требования:

  1. Задать пользовательский ввод в базе 2
  2. Преобразуйте значение base 2 в десятичное число и выведите это.
  3. Завершите цикл и спросите пользователя, хотите ли они ввести другое значение. Если так задайте вопрос еще раз, еще покажите сообщение «done» (или что-то в этом роде)

До сих пор я пытаюсь прочитать символ и сохранить его как строку.

Может ли кто-нибудь помочь!

спасибо.

   BR  main   
letter: .BLOCK 1   ;global variable #1c 
; 
main: CHARI letter,d ;cin >> letter 
     LDA  0x0000,i  
while: LDBYTEA letter,d ;while (letter != '*') 
     CPA  '*',i  
     BREQ endWh  
     CHARO letter,d ; cout << letter 
     CHARI letter,d ; cin >> letter 
     BR  while  
endWh: STOP     
     .END 

ответ

1

Хранение его как строки будет работать, но это усложняет проблему.

Возможно, вы обнаружили это в течение месяца между вопросом и ответом, но вы можете построить номер вверх, когда будете читать каждый символ, используя операцию арифметического сдвига влево.

 BR main   ;#include <iostream> 
letter: .BYTE 0   ;char letter = 0; 
number: .WORD 0   ;int number = 0; 
          ;int main() { 
main: CHARI letter,d ; std::cin >> letter; 
     LDA  0,i 
     LDBYTEA letter,d 
     CPA  '0',i  ; if (letter == '0') { 
     BRNE notzer 
     LDA  number,d 
     ASLA    ;  number *= 2; 
     STA  number,d 
     BR  main  ;  main(); 
notzer: CPA  '1',i  ; } else if (letter == '1') { 
     BRNE end 
     LDA  number,d 
     ASLA    ;  number *= 2; 
     ADDA 1,i   ;  number++;  
     STA  number,d 
     BR  main  ;  main(); 
          ; } else { 
end: DECO number,d ;  std::cout << number; 
     STOP    ;  return 0; 
     .END    ; } 
          ;} 

Это не обязательно самый простой и лучший способ решить эту проблему, хотя, я просто пытался сделать его легко понять.

Например, вы можете сохранить номер в регистре индекса до тех пор, пока не будете готовы его распечатать, сохраняя ваши строки/время от загрузки и хранения его с помощью аккумулятора. (вы можете просто использовать ASLX и ADDX 1, i)

Смежные вопросы