logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[bascom] Kod BCD - jak go wyświetlić?

xamrex 28 Lis 2010 16:30 8588 5
REKLAMA
  • #1 8800556
    xamrex
    Poziom 28  
    Naskrobałem coś takiego:
    $sim
    $regfile = "attiny2313.dat"
    $crystal = 1000000
    Dim A As Integer
    
    A = 4
    Print A
    
    Print Bcd(a)
    a = Makebcd(a)
    Print A
    
    End
    
    


    W wyniku symulacji dostaję liczby:


    Przecież 4 to w kodzie bcd 0100

    Dlaczego taki wynik nie wyświetla się w symulatorze?
  • REKLAMA
  • #2 8800601
    tadzik85
    Poziom 38  
    No kolego jakim cudem 4 w BCD ma być 0100? Kody ci się pomyliły.
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #4 8800858
    tadzik85
    Poziom 38  
    Tak ale zapisane binarnie. A to zupełnie co innego w tym przypadku.

    Jeśli chcesz zapis binarny to robisz binarny.
    A czy to będzie nkb czy bcd to już inna kwestia. W twoim kodzie jest wszystko ok.

    Kod jest kodem dziesiętnym w zapisie binarnym. Więc liczby drukowane są po "naszemu" używając cyfr. Jeśli chcesz BCD wydrukować w zapisie binarnym to najpierw konwersja do BCD a potem drukowanie binarne.
  • REKLAMA
  • #5 8801088
    piotrva
    VIP Zasłużony dla elektroda
    
    Print Bin(a)
    

    poza tym zwykły print zawsze wyświetla liczby w postaci dziesiętnej (domyślnie) więc trzeba używać Bin(x) lub Hex(x)
  • #6 8803966
    galusz
    Poziom 15  
    Generalnie Bcd(), Makebcd() przerabia liczby a nie cyfry. Bo dla pojedynczej cyfry to kod jest taki sam jak dana cyfra. Tak jak napisał kolega przerobione liczby nadal będą zapisane w zmiennej typu Byte, a samo wyświetlenie to inny temat.
    Np.:
    4(0100) - (4) 0100
    11(1011) - (17) 0001 0001
    63(111111) - (99) 0110 0011

    Czyli
    Print Bcd(63) 'da w odpowiedzi 99,

    Jeśli chcesz to wyświetlić binarnie
    a=Makebcd(63)
    Print bin(a) 'da w odpowiedzi 01100011
REKLAMA