Dziesietne na binarne
Dziesietne na binarne
Witam próbuje napisać program na zamiane liczb dziesiętnych na binarne i na odwrót ciągle mi nie wychodzi ... jak ktoś może niech pomoże
Przepraszam że nie dodałem, język C++
Przepraszam że nie dodałem, język C++
Ostatnio zmieniony 28 maja 2009, o 21:42 przez macieja92, łącznie zmieniany 1 raz.
- lukki_173
- Użytkownik
- Posty: 913
- Rejestracja: 24 paź 2008, o 17:48
- Płeć: Mężczyzna
- Lokalizacja: Kościeliska (woj. opolskie)
- Podziękował: 56 razy
- Pomógł: 218 razy
Dziesietne na binarne
VISUAL BASIC
Dziesiętny na binarny:
Public Class Form1
Public Function DecimalToBinary(ByVal DecimalNum As Long) As String
Dim tmp As String
Dim n As Long
n = DecimalNum
tmp = Trim(Str(n Mod 2))
n = n 2
Do While n <> 0
tmp = Trim(Str(n Mod 2)) & tmp
n = n 2
Loop
DecimalToBinary = tmp
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, wynik As Integer
a = TextBox1.Text
wynik = DecimalToBinary(a)
Label1.Text = wynik
End Sub
End Class
Binarny na dziesiętny:
Public Class Form1
Public Function BinaryNaDecimal(ByVal X As String) As Long
Dim n As Long
Dim s As Integer
For s = 1 To Len(X)
If Not IsNumeric(Mid(X, Len(X) - s + 1, 1)) Or Mid(X, Len(X) - s + 1, 1) > 1 Then
BinaryNaDecimal = -1
Exit Function
End If
n = n + (Mid(X, Len(X) - s + 1, 1) * (2 ^ (s - 1)))
Next s
BinaryNaDecimal = n
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer
Dim wynik As Integer
If Not IsNumeric(TextBox1.Text) Then
Label1.Text = "Nie można wykonać działania!"
Exit Sub
End If
a = TextBox1.Text
wynik = BinaryNaDecimal(a)
If wynik = -1 Then
Label1.Text = " Nie można wykonać działania!"
Exit Sub
End If
Label1.Text = wynik
End Sub
End Class
Dziesiętny na binarny:
Public Class Form1
Public Function DecimalToBinary(ByVal DecimalNum As Long) As String
Dim tmp As String
Dim n As Long
n = DecimalNum
tmp = Trim(Str(n Mod 2))
n = n 2
Do While n <> 0
tmp = Trim(Str(n Mod 2)) & tmp
n = n 2
Loop
DecimalToBinary = tmp
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, wynik As Integer
a = TextBox1.Text
wynik = DecimalToBinary(a)
Label1.Text = wynik
End Sub
End Class
Binarny na dziesiętny:
Public Class Form1
Public Function BinaryNaDecimal(ByVal X As String) As Long
Dim n As Long
Dim s As Integer
For s = 1 To Len(X)
If Not IsNumeric(Mid(X, Len(X) - s + 1, 1)) Or Mid(X, Len(X) - s + 1, 1) > 1 Then
BinaryNaDecimal = -1
Exit Function
End If
n = n + (Mid(X, Len(X) - s + 1, 1) * (2 ^ (s - 1)))
Next s
BinaryNaDecimal = n
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer
Dim wynik As Integer
If Not IsNumeric(TextBox1.Text) Then
Label1.Text = "Nie można wykonać działania!"
Exit Sub
End If
a = TextBox1.Text
wynik = BinaryNaDecimal(a)
If wynik = -1 Then
Label1.Text = " Nie można wykonać działania!"
Exit Sub
End If
Label1.Text = wynik
End Sub
End Class
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Dziesietne na binarne
Kod: Zaznacz cały
#include <iostream>
using namespace std;
string decToBin(int n)
{
string w="";
while(n>0)
{
char cyfra=n%2+'0';
w=cyfra+w;
n/=2;
}
return w;
}
int binToDec(string s)
{
int wynik=0;
for(int i=0; i<s.size(); i++)
wynik=2*wynik+(s[i]-'0');
return wynik;
}
main()
{
int n;
string l;
cin>>n;
cout<<decToBin(n)<<endl;
cin>>l;
cout<<binToDec(l)<<endl;
system("pause");
}
Dziesietne na binarne
No tak tylko wystarczy wstawic w case obramowac i oblookam czy dziala-- 28 maja 2009, 22:02 --tak pan napisał że nie idzie tego pociac na case xD
Dziesietne na binarne
chce w case umiesic ze w
case 1 :
Zamiana bin do dec
case 2 :
Zamiana dec do bin
case 1 :
Zamiana bin do dec
case 2 :
Zamiana dec do bin
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Dziesietne na binarne
Kod: Zaznacz cały
#include <iostream>
using namespace std;
string decToBin(int n)
{
string w="";
while(n>0)
{
char cyfra=n%2+'0';
w=cyfra+w;
n/=2;
}
return w;
}
int binToDec(string s)
{
int wynik=0;
for(int i=0; i<s.size(); i++)
wynik=2*wynik+(s[i]-'0');
return wynik;
}
main()
{
int n,k;
string l;
cin>>n;
switch(n)
{
case 1:
{
cin>>l;
cout<<binToDec(l)<<endl;
} break;
case 2:
{
cin>>k;
cout<<decToBin(k)<<endl;
} break;
}
system("pause");
}
Dziesietne na binarne
i czy moglby pan napisac do czego sluzy n k w-- 28 maja 2009, 22:41 --btw ... i nic nawet nie ma o tym ze porsze poda czy to liczbe binarna czy to dziesietna ..
-
- Użytkownik
- Posty: 13
- Rejestracja: 22 mar 2009, o 14:42
- Płeć: Mężczyzna
- Podziękował: 2 razy
Dziesietne na binarne
Ja mam prostszy (choć rekurencyjny) sposób:
Kod: Zaznacz cały
#include<iostream>
using std::cin;
using std::cout;
void dec2bin(unsigned int liczba)
{
if (!liczba) return;
dec2bin(liczba/2);
cout<<liczba%2;
}
int main()
{
unsigned int liczba;
cout<<"podaj liczbe: ";
cin>>liczba;
cout<<"
"<<liczba<<" w systemie binarnym wyglada tak: ";
dec2bin(liczba);
cout<<"
";
system("pause");
}
Dziesietne na binarne
dobra, moze sobie daruje prosbe o pomoc tutaj, bo nie jest zrozumialy kod dla mnie, co innego jak sie samemu pisze to sie wie co jest do czego...-- 28 maja 2009, 23:10 --albo jak juz ktos pisze niech uzywa zmiennych podpisanych np
int zamiana
int dziesietna
a nie ze int k int s i ktos kto chce zrozumiec dzialanie kodu w ogole nie wie o chodzi...
int zamiana
int dziesietna
a nie ze int k int s i ktos kto chce zrozumiec dzialanie kodu w ogole nie wie o chodzi...
- Arst
- Użytkownik
- Posty: 767
- Rejestracja: 10 mar 2008, o 20:11
- Płeć: Mężczyzna
- Lokalizacja: University of Warwick
- Podziękował: 82 razy
- Pomógł: 50 razy
Dziesietne na binarne
Przepraszam, że odświeżam ten wątek jednak mam pytanie odnośnie fragmentu kodu wyżej a nie warto zakładać osobnego tematu. Mianowicie chodzi o ten fragment funkcji:
Czy ktoś byłby w stanie wytłumaczyć co sprawdza warunek w tej funkcji i co zwraca return? Nie ogarniam tego fragmentu.
Kod: Zaznacz cały
void dec2bin(unsigned int liczba)
{
if (!liczba) return;
dec2bin(liczba/2);
cout<<liczba%2;
}
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
Dziesietne na binarne
if (!liczba) return;Arst pisze:chodzi o ten fragment funkcji:
Czy ktoś byłby w stanie wytłumaczyć co sprawdza warunek w tej funkcji i co zwraca return?
Jest to sprawdzenie czy liczba == 0, jeżeli tak kończymy działanie.
if (liczba) oznacza czy liczba jest różna od zera, natomiast wykrzyknik oznacza negację warunku.
Niestety dla liczby zero podanej do konwersji nie zostanie wypisany wynik w postaci zera.
Kod: Zaznacz cały
void dec2bin(unsigned int liczba) {
if (!liczba) return; // Jeśli liczba == 0 zakończ działanie funkcji
dec2bin(liczba/2); // wywołaj rekurencyjnie funkcję z liczbą dwa razy mniejszą czyli przesuniętą o jeden bit w prawo
cout<<liczba%2; // wypisz ostatnią cyfrę binarną liczby czyli (liczba & 1)
}