Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

operacje na zmiennych(bascom avr)

jacobsek 09 Mar 2006 18:19 2045 1
  • #1
    jacobsek
    Level 22  
    Witam.
    Potrzebuję informacji czy w bascomie można wykonywać operacje typu zmienna1*zmienna2 lub zmienna1=zmienna2 gdy jedna zmienna jest np.typu integer a druga long?, gdy zawierają liczbę która mieści się w zakresie dozwolonym dla obu?.
    Jeśli ze zmiennej long zrobiłem licznik zliczający w obie strony a później próbuję po pewnym okresie zliczania przypisać wynik do inej zmiennej innego typu to jakieś dziwne rzeczy wychodzą choć obie zmienne( w moim przypadku long jest licznikiem a druga to integer) mogą przyjmować wartości dodatnie i ujemne to przy ujemnych jakoś dziwnie to działa
    Wychodzą mi różne problemy i być może takie operacje można wykonywać tylko dla zmiennych tego samego typu?
    Dzięki za każdą informację
  • Helpful post
    #2
    M. S.
    Level 34  
    Myślę, że jest to naturalne. Zmienna typu Long zajmuje 4 bajty a Integer tylko 2. Nie da się ciężarówki zaparkować w garażu dla malucha. W helpie jest informacja, że można dokonywać konwersji typów. Oto fragment:

    Dim I As Integer, S As Single
    
    S = 100.1   'przypisujemy liczbę zmiennoprzecinkową 
    I = S       'ta instrukcja zmieni liczbę typu single na Integer


    W tym przypadku zostanie utracona część ułamkowa. W twoim przypadku pewnie ulegają utraceniu nawet 2 bajty. Może kompilator nie sygnalizuje błędu ale wynik nie może być dobry.
    Podobnie gdy mnożysz dwie liczby Integer to trzeba się zastanowić czy wynik zmieści się w tym typie. Jeżeli nie potrzebny jest Long.