matematykaszkolna.pl
. Alky: Witam, mógłby mi ktoś powiedzieć, czy w języku C++ jest komenda/funckja zamieniająca liczbę z systemu decymalnego na czwórkowy/dwójkowy ? Myślę generalnie o systemach pozycyjnych będących wielokrotnością 2. Kiedyś miałem coś zrobić na szesnastkowym i pamiętam, że używałem zwyczajnie cout<<hex<<a; teraz znowu potrzebuję zamian z czwórkowego i ósemkowego ( zadanie które potencjalni mogłoby się pojawić na maturze, a napisanie funkcji zamieniającej na dane systemy zabrałoby mi pare minut , czego wolałbym jednak uniknąć, jeśli środowisko ma wbudowaną taką opcję. cout<<oct<<a; więc 16−kowy i 8−kowy z głowy, ale zostaje binarny i czwórkowy, a do tych udało mi się dojść . Jakaś podpowiedź ? emotka
18 kwi 21:31
Alky: Zjadło kawałek + poprawka ( "a do tych NIE udało mi się dojść <tak jak np do ósemkowego prógując wstawiać jakieś skróty nazw tych systemów>)
18 kwi 21:33
Adamm: dwójkowy na pewno istnieje, chociaż nie pamiętam dokładnie jak to się robiło
18 kwi 21:33
18 kwi 21:35
g: Ze zmiennej typu int łatwo wydobyć pojedyncze bity, albo grupy bitów, czyli cyfry przy podstawie 2n. Na przykład: układ szesnastkowy, cyfra trzecia (o wadze 256) cyfra = (liczba >> 2*4) & 0xF;
18 kwi 21:38
Metis: Internet kipi od takich informacji. Wpisz swój problem po ang. dec to ... c++
18 kwi 21:39
Alky: g wiem jak działają systemy... Szukałem też trochę, ale srednio się doszukałem. Potem jeszcze trochę z tym powalczę. Jeśli chodzi o te zamiany co wcześniej mówiłem (..<<hex/oct<<a; ) to chyba nie można w ten sposób potraktować 2 i 4 . Znalazłem też funkcję setbase(), ale i ona nie działa dla 2 i 4. Dla 8 i 16 jest ok, ale dla tych dwóch jeszcze sobie poszukam. Najwyżej po prostu napiszę sobie tą funkcje i strace te 10 min. Myślałem, że może zwyczajnie binarny i czwórkowy jakoś inaczej się zapisuje, ale da się go zrobić tak jak tamte 2 pozostałe, ale chyba nie. Dzięki za pomoc tak czy inaczej. Poszukam jeszcze czegoś na stackoverflow i głębiej sięwczytam w komentarze przy tym co wysłał @Adamm .
18 kwi 21:55
behroror: dobra,.... zamień 0101010101010101 na czwórkowy..
18 kwi 22:29
Alky: No widze... wyzwanie, hm ? 15−latkom w gimnazjum też dawałeś takie wymagające zadania ? Przypadkiem miałem okazje nauczyć się potęgować, mnożyć i dodawać. Tak wyszło. Chyba nie muszę Ci niczego udowadniać... Pozdrawiam
18 kwi 23:02
Adamm: Alky, myślę że nawet 5−latki by sobie z tym poradziły emotka
18 kwi 23:05
Alky: Też o tym pomyślałem pisząc o 15−latkach ^^
18 kwi 23:09
behroror: ale do czego ja to pisałem ? otóż łatwo zauważyć, że można grupować te 0 i 1 po 4 bity, i napisanie tego algorytmu to kilka linijek, jeśli chcesz iść na piechotę zamiast korzystać z gotowców, to też nie jest jakieś wyzwanie
18 kwi 23:16
Adamm: behroror, myślę że każdy to zauważył już przy pierwszym podejściu
18 kwi 23:17
behroror: tzn. myślałem, że ten temat powstał by pomóc się uporać z pewnym problemem algorytmicznym, najwidoczniej już wszystko się rozwiązało
18 kwi 23:18
Alky to kurew elo : NIE KURWA ŚMIETNIKI JEBANE
18 kwi 23:26
Alky: Przepraszam za kolege on nie chciał
18 kwi 23:27
Alky: Pisałem już w pierwszym poście w tym temacie, że to nie jest kwestia trudności związanych z zamianą, tylko ewentualna możliwość spotkania zadania ( na maturze) w którym będę musiał wykorzystać zamianę na inne systemy. Tam na cały program mam 50 min i nie chce tracic czasu. Choci o najszybszą metodę, i pytałem czy mogę to ująć w jednej linijce tak jak 8−kowy i 16−kowy
18 kwi 23:27
Alky: Jestem gejem i korzystam z tego forum tylko dlatego ,ze kręcą mnie panowie matematycy i lubie trójkąty
18 kwi 23:28
Alky: No ładnie emotka Dzieje się
18 kwi 23:28
behroror: Alky, jak ja pisałem mature z informatyki, to miałem ograniczony zasób funkcji z których mogłem korzystać, więc część funkcji musiałem napisać samemu.
18 kwi 23:29
Alky: Ej ziomki dajecie , podawajcie rozmiary penisów ja ułoże algorytm i poruchamy
18 kwi 23:29
Alky: A pisałeś rok temu, tak ?
18 kwi 23:29
Alky: Δ
18 kwi 23:30
behroror: ja jeszcze pisałem tę 'starą' mature
18 kwi 23:30
Alky: Wnioskuje po poście który widziałem dot. liczb zespolonych. Musze przyznać, że nic mi o tym nie wiadomo (odnośnie ograniczonego zasobu funkcji). Może się doinformuje. Myślałem, że "wszsytkie chwyty dozwolone"
18 kwi 23:31
Alky: Ah. No dobrze. Mniejsza. Sprawdze to sobie. Dzięki za informacje
18 kwi 23:32
Alky: rysunekej chłopaki obliczcie mi prosze pole tego czerwonego trójkąta
18 kwi 23:32
behroror: jestem na 3cim roku neurobiologii i pomyślałem, że warto się kształcić dalej, więc wybrałem informatykę, i tak sobie powoli matmę przerabiam
18 kwi 23:33
Alky: α≠β Ω ⇒ π
18 kwi 23:36
Alky: sory nie tutaj
18 kwi 23:36
Alky: No informatyka z dzisiejszymi zapatrywaniami na przyszłość w tej dziedzinie na pewno się opłaci emotka
18 kwi 23:36
Alky: Pozdrawiam swoje alter ego emotka
18 kwi 23:37
Alky: Ostatecznie wygląda to chyba tak jak pisał behroror i rzeczywiście napisałem sobie dwie funkcje zamieniające dowolne wyrażenie z dowolnego systemu na dziesiątkowy i drugą−z dziesiątkowgo na dowolny. Niby chwile zajmuje, ale w sumie jak juz się to ma to reszta jest kwestią użycia tych funkcji i jakiegoś prostego znajdywania konkretnych wartości, sortowanie etc.
20 kwi 00:48
Mariusz: Spróbuj tego iomanip setbase
20 kwi 11:58
behroror: nie może
20 kwi 12:04
Alky: Próbowałem już z setbase(), ale działa tylko dla systemów 8, 10 i 16. Poza tym może się okazać tak jak mówi behroror, że nie mogę tego użyć.
20 kwi 15:48
Mariusz: To pozostaje jedynie napisać własną funkcję
20 kwi 18:19
Alky: string zsystemudziesietnego(int liczba, int system) { int znak=1; int reszta; char znakascii; string s=""; if(liczba<0) { znak=−1; liczba=−liczba; } if(liczba==0) return "0"; while(liczba>0) { reszta=liczba%system; liczba=liczba/system; znakascii=48+reszta; s=znakascii+s; } if(znak<0) return '−'+s; return s; } int nasystemdziesiatkowy(string liczba1) { int znak=1; int dlliczby1; int liczbawdziesiatkowym; dlliczby1=liczba1.size(); if(liczba1[0]=='−') { znak=−1; for(int i=0;i<dlliczby1;i++) liczba1[i]=liczba1[i+1]; } if(liczba1=="0") return '0'; for(int potega=0lliczby1−1>=0lliczby1−−,potega++) { liczbawdziesiatkowym=liczbawdziesiatkowym+pow(liczba1[dlliczby1−1], potega); } if(znak<0) return '−'+liczbawdziesiatkowym; return liczbawdziesiatkowym; } wczoraj przed snem zrobiłem 2 funckje zamieniające z dziesiątkowego na inne systemy i z innych na dziesiątkowy, ale muszę go jeszcze poprawić, bo coś chyba jeszcze tam kuleje. Próbowałem odpalić na jakiechś danych i wypluło błędne wyniki. Jak dziś wieczorem wrócę do domu to zobaczę co mu dolega emotka
20 kwi 18:39