-
Data: 2015-09-26 18:22:13
Temat: Re: Konwersja kodu
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Saturday, September 26, 2015 at 5:27:32 PM UTC+2, szemrany wrote:
> Hejka,
>
> Widzę, że niektórym się na grupie nudzi i próbują podkarmiać trolla, więc
> może wykorzystam ten power w słusznym celu ;-)
>
> Mianowicie niejaki AK mnie porzucił z pomocą w konwersji kodu z C do
> Pascala i potrzebuję pomocy.
> Już prawie wszystko mam przetłumaczone, ale jeszcze pojawiają się
> wątpliwości. Oto one.
>
> ret->allocated = (size / wordbitsize + 1);
>
> gdzie allocated to int
>
> Czy w C przypisanie wyniku dzielenia konwertuje/obcina go do typu
> całkowitego?
Pogooglaj za konwersją i promocją typów.
http://mikrokontrolery.blogspot.com/2011/02/kurs-jez
yka-c-rzutowanie-promocja-typow.html
>
> Kolejna rzecz.
>
> if (trailing_bits) {}
>
> gdzie trailing_bits to char
>
> Czy char jest odpowiednikiem typu byte z pascala?
O ile pamiętam, to w C była gwarancja tylko co do tego:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long).
Może gdzieś na jakiejś platformie przy jakiś opcjach char
ma 10 bitów, moze gdzieś 16.
Jeśli ilość bitów i bajtów w typach jest ważne, to najlepiej
je przedefiniować w jakimś miejscu. Nastepnie na starcie
programu:
if( sizeof(moj_char) <= 2 ) {
printf("ten program zadziała tylko na znakach 2bajtowych");
abort();
}
> Czy takie sprawdzanie warunku to sprawdzenie czy trailing_bits <> 0?
Tak.
> I następna.
>
> x = (word_t) ~0;
>
> gdzie word_t to uint64
>
> Czy to jest równoważne zapisowi:
>
> x = max_uint64;
Zależy czym jest to zero bez sufixów.
Ja bym napisał , że:
x = ~0ULL;
jest równe
x = max_uint64;
> czyli zapalone wszystkie 64 bity?
> Kolejny niejasny moment:
>
> ret->trailing_bits = *(ret->bitset + ret->allocated - 1) ? (word_t) ~0 : 0;
Faktycznie niejasny moment. Nie lepiej unikać takich sytuacji?
Dlaczego nie sprawdzisz jak Twój kompilator na Twojej platformie z Twoim
opcjami się zachowa?
Na pewno
typ_calkowity x = 0;
wyzeruje wszystkie bity
Ustawia się wszystkie bity tak:
typ_dodatni x = ~((typ_dodatni)0);
Wyrażenie
~0
jest równe -1. Co się stanie gdy wartość ujemną się przypisze do
typu dodatniego? Odpowiadam pytaniem, po co coś takiego robić?
Chcesz wiedzieć jak się zachowa kompilator, a czy w ogóle można
sensownie się zachować, gdy ktoś każe trzymać wartość ujemną w
typie bez znaku?
I odwrotnie:
~0u
to max_uint.
Przypisywanie max_uint do inta to przekroczenie zakresu. Znowu moje
pytanie, po co coś takiego robić? Nie lepiej napisać kod tak, aby z
niego wynikały intencje programisty? Np.:
int x = -1;
Mieszanie operacji arytmetycznych ze znakiem z operacjami bitowymi to
proszenie się o kłopoty. Wiem, można uzyskać szybszy kod. Można nawet w
typie double ustawiać i zerować bity. Ale
>
> Co ta linia przypisuje do trailing_bits?
>
> I definicje, żeby było łatwiej:
>
> ret to IntBitSet
>
> typedef unsigned long long int word_t;
>
> typedef struct {
> int size;
> int allocated;
> word_t trailing_bits;
> int tot;
> word_t *bitset;
> IntBitSet;
>
> Dziękuję :-)
Następne wpisy z tego wątku
- 26.09.15 18:49 bartekltg
- 26.09.15 18:57 szemrany
- 26.09.15 19:01 bartekltg
- 26.09.15 19:31 szemrany
- 26.09.15 19:35 bartekltg
- 26.09.15 19:47 M.M.
- 26.09.15 19:56 bartekltg
- 28.09.15 09:57 Tomasz Kaczanowski
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)