5 / 6
Mar 2018

Witam!
Mam problem z tym zadaniem: http://pl.spoj.com/problems/PROGC02/18
W jakim kodowaniu są te liczby? Dla każdej tablicy ASCII jaką znalazłem “ę” było na pozycji 169. Tutaj jest to 153, 179, 195 lub 196.
Kodu nie wrzucam, bo póki co dobrze wiem dlaczego nie działa.
W komentarzach ktoś próbował wyjaśnić skąd się biorą te liczby, ale zrobił to na przykładzie “ą”, którego tam nie ma (ale pojawiło się 196), ale też do końca nie rozumiem tego systemu, bo przecież te liczby po podziale dają nam 4 i 5 (próbowałem je jakoś łączyć, ale dalej nie dają one 196 i 133).

  • created

    Mar '18
  • last reply

    Aug '18
  • 5

    replies

  • 1.4k

    views

  • 4

    users

  • 2

    links

ę to 196 153.

Wszystko to potrzebujesz jest w komentarzu Piotra Kąkola. Co prawda też nie do końca rozumiem czemu tak się dzieje, że:

00100 000101 to 196 i 133

ale “coś” dopisuje tutaj brakujące bity prawdopodobnie dodając jedynki z przodu i zero na brakującej ostatniej pozycji :wink:

Tzn:
11000100 = 196
10000101 = 133

Zwróc uwagę na:

Nie jest to jednak konieczne w tym zadaniu, żeby operować na bitach liczb, dodawać jakieś 0 i 1 gdziekolwiek itp. Rozwiązanie jest o wiele prostsze. Ja tylko wyjaśniam skąd się wzięły te 4 ostatnie liczby z 2. testu.

To zdanie można zrobić bez żadnych skomplikowanych konwersji.

To kodowanie jest zależne od kompilatora. Tutaj, w gcc jest to Unicode.

“Aktywne” korzystanie ze SPOJ’a a przede wszystkim z forum, to nie pisanie a potem czekanie i czytanie odpowiedzi. Wystarczy zmienić kolejność, najpierw czytanie [wyszukiwanie] a dopiero potem pisanie!

Jeszcze lepiej najpierw zdobyć szacunek :wink: Jak? Wpisz w wyszukiwarkę - kliknij lupkę [takie kółeczko z ukośą kreseczką] w górnym, prawym rogu okna i tam wpisz sobie “jak zdobyć szacun”.
Potem już tylko przeczytać i zastosować :wink:
Można też, a nawet trzeba, wpisywać tam zawsze nazwę problemowego zadania i najpierw czytać …

Okay, dopisywanie jedynek rzeczywiście jest spoko. Też mi się wydaje, że nie trzeba operować na bitach, ale bardziej chciałem umieścić literki w odpowiednim miejscu, bo co z tego, że kod działałby poprawnie, jeśli u mnie “ę” by traktowało jako 169.

@narbej szukałem, ale temat który znalazłem dotyczył innego zagadnienia, no i tytuł był w takiej postaci, że dopiero przy tworzeniu tego posta mi się wyświetlił. Uznałem więc, że warto stworzyć temat pod taką nazwą, aby w przyszłości łatwiej było go znaleźć.

EDIT: Dlaczego jest tak, że “ą” wpisywane z klawiatury ma wartość -91, a wpisywane w programie ma wartość -71?

Właśnie, też tego nie rozumiem? Nie rozumiem, czemu ludzie albo nie czytają --> Jak zdobyć szacun na SPOJu, albo może czytają, ale nic nie dają od siebie a oczekują od innych. Bez urazy, nie mam konkretnie Ciebie na myśli :wink: a tylko naszła mnie, taka ogólna, pesymistyczna refleksja. ;-( Chociaż na szczęście są [nieliczne] wyjątki.

4 months later

Tę 1 trzeba dopisać tyle że nie trzeba tego robić na bitach a można już dodać do postaci dziesiętnej wtedy zamiast 1 dodajemy 256.
Nie musicie dziękować.