Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- rem %decimal% to zmienna przechowywująca wprowadzoną liczbę dziesiętną.
- rem tutaj jest to argument %1, ale można to oczywiście zmienić.
- rem Byle w %decimal% wylądowała liczba dziesiętna.
- set decimal=%1
- rem %binary% to zmienna która będzie przechowywać wynikową liczbę binarną
- set binary=
- rem "main" to będzie główna pętla skryptu. To tutaj będzie obliczna liczba binarna
- :main
- rem jeśli %decimal% równa się zero, to znaczy że obliczenia są zakończone i można wyjść z pętli.
- if %decimal% equ 0 goto end
- rem ta linijka oblicza resztę z dzielenia %decimal% przez 2
- rem operator "%%" jest specjalny bo zwraca resztę z dzielenia.
- set /a rest=decimal %% 2
- rem teraz %decimal% jest dzielony przez dwa, ale części dziesiętne są wyrzucane.
- rem więc 4/2=2 ale 3/2=1
- set /a decimal=decimal/2
- rem w %binary% przechowywana jest liczna binarna (dwójkowa)
- rem w %rest% przechowywana jest reszta z dzielenia %decimal% przez 2.
- rem teraz na początek %binary% zostaje dodana ostatnia reszta z dzielenia (1 lub 0)
- rem ta linijka dosłownie oznacza: połącz napis ze zmiennej %rest% z napisem %binary%
- rem batch automatycznie konwertuje liczby do napisów
- set binary=%rest%%binary%
- rem powrót do "main" by kontynuować obliczenia
- goto main
- :end
- rem wypisanie wyniku i wyczyszczenie użytych zmiennych
- echo %binary%
- set binary=
- set decimal=
- set rest=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement