Skocz do zawartości

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Daniel K.

Zamiana z systemu binarnego na dziesiętny

Rekomendowane odpowiedzi

Mógłby mi ktoś podpowiedzieć jak zapisać liczbę w systemie binarnym podawaną z klawiatury przez użytkownika, tak aby później poszczególne cyfry (z których składa się liczba binarna) mogły być mnożone przed podstawę do dopowiedniej potęgi?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Mógłby mi ktoś podpowiedzieć jak zapisać liczbę w systemie binarnym podawaną z klawiatury przez użytkownika, tak aby później poszczególne cyfry (z których składa się liczba binarna) mogły być mnożone przed podstawę do dopowiedniej potęgi?

troszke nie rozumiem =]

masz problem z zamianą liczby na binarną, czy co?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mam problem z napisaniem programu w języku ANSI C zamieniającą liczbę binarną na dziesiętną.

 

Z zamianą z dziesiętnego systemu na binarny sobie poradziłem...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Mam problem z napisaniem programu w języku ANSI C zamieniającą liczbę binarną na dziesiętną.

 

Z zamianą z dziesiętnego systemu na binarny sobie poradziłem...

damn, to sie pierwszy raz spotykam, zeby ktos z binarnego nie umiał na dziesiętny, a z bin na dec umiał... a na kartce umiesz to zrobić?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
damn, to sie pierwszy raz spotykam, zeby ktos z binarnego nie umiał na dziesiętny, a z bin na dec umiał... a na kartce umiesz to zrobić?

Ja wiem chyba o co mu chodzi, tez mialem taki problem w podstawowce :)

 

Jak juz napisales przeliczanie z 10 na 2 to git (zapewne uzywales dzielenia modulo i reszta z tego dzielenia dawala ci cyrferke ktora zapisywales jako binarne "0" lub "1" :))

 

 

Teraz robisz tak:

 

majac liczbe "binarna" (np. 101) zapewne nie wiesz jak podstawic ja do wzoru podanego w wiki (patrz post wyzej). Jedyne co ci jest potrzebne to poszczegolne cyfry z liczby binarnej.

 

101 mod 10 = 1 ->masz pierwsza "1" do podstawienia do zworu (o wadze 0

101 / 10 = 10 (w zalozeniu ze operujesz na liczbach calkowitych, jesli nie to uzyj floor do zaokraglenia w dol)

 

10 mod 10 = 0 -> masz kolejna cyfre "0" o wadze 1

 

10 / 10 = 1

 

1 mod 10 = 1 ->i ostatnia cyfra "1" o wadze 2.

 

 

teraz juz majac wszystko co trzeba...

 

1 * 2^0 + 0*2^1 + 1*2^2 = 5 :)

 

powodzonka ;P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
101 mod 10 = 1 ->masz pierwsza "1" do podstawienia do zworu (o wadze 0

101 / 10 = 10 (w zalozeniu ze operujesz na liczbach calkowitych, jesli nie to uzyj floor do zaokraglenia w dol)

 

10 mod 10 = 0 -> masz kolejna cyfre "0" o wadze 1

 

10 / 10 = 1

 

1 mod 10 = 1 ->i ostatnia cyfra "1" o wadze 2.

teraz juz majac wszystko co trzeba...

 

1 * 2^0 + 0*2^1 + 1*2^2 = 5 :)

 

powodzonka ;P

heh... nigdy bym nie wpadł na to zeby liczbe binarną zapisac w pamieci jako liczbe dziesiętną... 101 to nie jest sto jeden...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Liczbę binarną wprowadzasz z klawiatury jako tekst.

A resztę już koledzy wyżej wyjaśnili.

Aha, zmiana znaku '1' na cyfrę 1 jest prosta: 1 = '1' - '0' :E

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Prosta pętla

int dec(char *c)
{
char *d = c;
int r = 0;

while(*d) // czy nie koniec łańcucha
{ 
	r = 2 * r + (*d - '0');
	d++;
}
return r;
}

Parametr to łańcuch z zapisaną liczba binarną jako tekst.

PS. Tym sposobem da się zamienić z dowolnego systemu o podstawie < 10 na dziesiętny. Trzeba tylko w działaniu zamienić 2 na podstawę systemu. Przy postawach większych niż 10 trzeba zmienić jeszcze (*d - '0') żeby dawało dobre wartości dla cyfr większych niż 9.

PPS. Jeżeli dane są z klawiatury po jednej cyfrze, to zamiast przechodzenia po lańcuchu można brać kolejne znaki i podstawiać do wzoru r = 2 * r + (*d - '0'), zamiast *d zmienna z odczytanym znakiem, a zamiast d++ dać pobieranie kolejnego znaku. I tylko zmienić warunek końca liczby, ENTER albo spacja, zależy co pasuje do sytuacji.

 

PPPS. Robić mi się nie chce

int main()
{
  char d;
int r = 0;

d = getche();
while(d != 13) // kończyć ENTEREM
{ 
   r = 2 * r + (d - '0');
   d = getche();
}
printf("\n%d",r);
return 0;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
heh... nigdy bym nie wpadł na to zeby liczbe binarną zapisac w pamieci jako liczbe dziesiętną... 101 to nie jest sto jeden...

 

 

chodzilo mi o to ze chlopak na pewno wczytuje ta liczbe jako int/float/char *

 

zreszta nvm

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • Trudne się wylosowało... Monitorów z tunerem jest jak na lekartwo a szybszych niz 60hz tym bardziej. Nie ma mowy też o oledzie ani miniledzie z tunerem chyba że chodzi o telewizor to już prędzej coś znajdziesz.  Nie podałeś specyfikacji swojego komputera to też niezbyt można powiedzieć czy poradzi sobie z monitorem 4k np. (Samsung monitor m7 i m8) mają smart tv ale tunera już nie mają... Dodatkowo są na matrycy VA co nie każdemu może przypaść do gustu. Najlepszym rozwiązaniem będzie kupno możliwie najlepszego monitora na miniledzie/oled (jeżeli nadal mówimy o budżecie 4000zł) i jakiegoś smartboxa (googletv) z tunerem i podłączenie go do monitora poprzez HDMI.
    • Witam Proszę o ocenę zestawu do grania w 1440p i ewentualne propozycje zmian, chciałabym żeby wszystko zamknęło się w 7tys. Preferuję połączenie Intel/Nvidia, najlepiej jak najmniej RGB, dyski już posiadam (2 SSD Sata). Procesor i5 14600KF Karta Gigabyte GeForce RTX 4070 Super Windforce OC 12GB Płyta główna MSI B760 Gaming Plus WIFI lub MSI MAG B760 Tomahawk WIFI (wcześniej rozważałam również Gigabyte B760 Gaming X AX) Zasilacz Seasonic Focus GX - 750W Lexar Ares RGB 32GB 6400MHz CL32 Obudowa Genesis Irid 505F Z chłodzeniem mam problem, ponieważ chciałam zakupić Deepcool'a AK620, jednak nie jest dostępny w sklepie komputronika (sklep wybrałam ze względu możliwości odbioru komputera w moim mieście). Niestety ten ma dość ograniczony wybór chłodzeń. Tak samo jak widać mocno zastanawiam się nad płytą główną, jestem otwarta na propozycje.
    • https://www.rtings.com/monitor/learn/research/vrr-flicker  
    • Ja czego nie rozumiem? No ja rozumiem jaka jest różnica pomiędzy odbiornikiem prądu a generatorem. Z tego co widzę hybrydy się zgłasza. Czy Ci się to podoba czy nie. To nie jest offgrid.  Tak samo jak magazyn energii. Mimo iż ludzie używają je wewnątrz domu, to muszą być zgłaszane.  To że chińczyk mówi, że falownik nie wysyła nadmiaru energii poza sieć nie ma żadnego znaczenia jeśli podepniesz to do sieci.  Czy na rondo nie ma liczników? Na enmasz umowy tam z energetyka? Nie da się zamontować normalnej instalacji? Co powiedział Ci dostawca prądu? Jeśli sąsiada z działki wywali choćby radio na drugi tydzień po montażu Twojego lewego PV, to spodziewaj się problemów.  Jak udowodnił aż że Twój chiński szajs jest przekozak wówczas? Będziesz miał na to jakieś papiery?  Ze specyfiki pracy jaką oczekujesz. Ta sama zasada działania Cię interesuje. Będziesz szukał paneli gruntowych? A czym różnią się takie od paneli dachowych albo balkonowych? Zestaw balkonowy to jest to co szukać powinieneś. Bo zestawów RODo nie robi a raczej?  Zacznijmy od tego, że zacząłeś od złej strony, bo zamiast falownika i budowania hybrydy, podpina się takie rzeczy prosto w panele. Pompa na prąd stały o szerokim napięciu działania pyrka sobie jak ma napięcie i tyle. 
    • 40 powinno na górkę styknąć. I to na luzie jako dodatkowe.  Ewentualnie powinieneś pomyśleć nad jakimiś listwami przypodlogowymi z systemem dowolnego dodawania gniazdek.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...