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

    • Coś w tym jest. a) W HDR Game kalibrator Windows pokazuje 465 nitów, a w HDR default można ustawić w Win 1000+.  ALE b) jak mierzę światłomierzem z telefonu (okienko 1%), to w HDR default mam 800 luxów, w HDR Game 1750 luxów.     @PiPoLiNiO Zmierz oczami  to okienko w HDR i HDR Game z tego filmu. Bez problemu widać, że jest jaśniejsze w HDR Game.
    • @galakty co ty będziesz że  handel ze wschodem nie istnieje https://www.tirsped.com.pl/blog/polska-wymiana-handlowa-z-innymi-krajami/ Skąd najwięcej importuje Polska? Dane narastająco od początku roku  Niemcy – wartość: 222,1 mld PLN – 21,9% udziału Chiny – 146,6 mld PLN – 14,4% Włochy – 52,2 mld PLN – 5,1% Rosja – 45,1 mld PLN – 4,4% Holandia – 40,4 mld PLN – 4% Francja – 35 mld PLN – 3,5% Czechy – 32,3 mld PLN – 3,2% USA – 24,3 mld PLN – 3,1% Korea Południowa – 24,3 mld PLN – 2,4% Belgia – 23,2 mld PLN – 2,3% @Camis mentzen wolnościowiec który mówi o przymusie , dzięki za link @Spl97 po co to pisanie o kucach i debilne ogólniki ? Nie lepiej przekonywać konkretnymi  argumentami do pozostania w UE ? Tak się naśmiewasz z PiSu i jego elektoratu a sam robisz to samo co oni @lukadd do dziś ludzie myślą że Polska jest krajem suwerennym, mamy największą wymianę handlową z Niemcami więc narazie musimy pozostać w UE nawet jak ktoś tego nie chce , trzeba tylko przekonywać rządzących UE że likwidacja pieca gazowego itd nie jest dobrym pomysłem , z pozycji wasala ciężko coś ugrać   
    • Pokazałem wykresy ale prawda jest tylko jedna - TO NIE JEST TO SAMO "If we look at the common peak white luminance measurements you can see what impact the ‘APL stabilize’ setting is having in this area too. Only the HDR Game and Vivid modes reach up to the panels >1000 nits capability, getting to 1072 nits maximum as the setting is on ‘high’. The other 3 modes all cap out at around 484 nits where it’s set on ‘middle’." I zanim zapytasz "to czemu nie ustawił na APL HIGH pozostałych trybów?" bo ch. dają i tak nie przekroczą 480 peak nitów.   Tylko HDR Game oraz HDR Vivid mogą osiągnąć Peak 1000 w trybie APL HIGH. Potwierdziłem to też po rozmowie z kolesiem który napisał recenzje na TFTcentral i jak ustawisz "domyślny HDR" w APL HIGH to masz max peak w okolicach 480 nitów! Czyli TrueBlack 400!☠️   Mam przyjechać do ciebie z kalibratorem aby pokazać czarno na białym że zwykły HDR z APL HIGH to nie jest tryb Peak1000?    
    • @Camis masz wypowiedź mentzena o tym co dokładnie powiedział na temat tego poboru tylko mężczyzn?
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...