-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Konwersja kodu
Date: Sat, 26 Sep 2015 19:56:49 +0200
Organization: ATMAN - ATM S.A.
Lines: 127
Message-ID: <mu6m91$s81$1@node2.news.atman.pl>
References: <1i91n3jkf2r8s$.us4fry1ns183$.dlg@40tude.net>
<mu6ib9$oja$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1443290209 28929 89.73.81.145 (26 Sep 2015 17:56:49 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sat, 26 Sep 2015 17:56:49 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
Thunderbird/38.2.0
In-Reply-To: <mu6ib9$oja$1@node2.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:208418
[ ukryj nagłówki ]On 26.09.2015 18:49, bartekltg wrote:
> On 26.09.2015 17:27, szemrany wrote:
>> Hejka,
>>
>> Widzę, że niektórym się na grupie nudzi i próbują podkarmiać trolla, więc
>
> Przyłączyłbyś się do wspólnego wysiłku a nie tak tylko korzystasz;>
>
>> 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?
>
> Tak. Bardzo łatwo sprawdziłbyś to w google;>
>
>
>> Kolejna rzecz.
>>
>> if (trailing_bits) {}
>>
>> gdzie trailing_bits to char
>
>
>> Czy char jest odpowiednikiem typu byte z pascala?
>
> char ma 256 różnych wartośći, ale lepiej użyć unsigned char
> albo uint8_t (z <cstdint>)
>
>> Czy takie sprawdzanie warunku to sprawdzenie czy trailing_bits <> 0?
>
> w C i C++ if(x) to to samo co if(x!=0)
>
>
>> I następna.
>>
>> x = (word_t) ~0;
>
>> gdzie word_t to uint64
>
> Nie ma czegoś takiego. Jest uint64_t.
>
>
>> Czy to jest równoważne zapisowi:
>>
>> x = max_uint64;
>
> Tak. Ale umiesz odpowiedzieć, dlaczego 0, które jest intem ze znakim
> promuje się do _szerszego_ inta bez znaku, a dopiero potem jest negowane
> bitowo? Jest na to werset w standardzie, czy to zależy od kompilatora?
> ;-)
>
>
> Zależnie od kontekstu, pewnie lepiej:
> #include <limits>
> ...
> x = numeric_limits<uint64_t>::max();
> lub
> numeric_limits<decltype(res)>::max(); //wtedy jak zmienisz typ x
> wartość też sie zmieni.
>
>> Kolejny niejasny moment:
>>
>> ret->trailing_bits = *(ret->bitset + ret->allocated - 1) ? (word_t) ~0
>> : 0;
>
>> Co ta linia przypisuje do trailing_bits?
>
> Ta linia reprezentuje brzydkie hackerstwo;)
>
>> 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;
>
> Nie zjadłeś tu klamerki?
>
>> IntBitSet;
>>
>> Dziękuję :-)
>
>
> ret->trailing_bits =
> (ret->bitset[ret->allocated - 1] !=0 ) ? (word_t) ~0 : 0;
>
> Teraz jasne? bitset to wskaźnik na dynamicznie zaalokowaną tablicę
> (domyślam się z kontekstu), allocated to dligość zaalokowanej tablicy,
> ret->bitset + ret->allocated - 1 to wskaźnik na ostatni elemnt tablicy.
> * to dereferencja. Więc to to samo co
> ret->bitset[ret->allocated - 1]
>
>
> Jeśli ostatni element zaalokowanej pamieci (a właśnie, czemu patrzymy
> na allocated, nie size?) jest niezerowy, trailbits wypełniamy jedynkami,
> w przeciwmy razie zerem.
Skoro to z c->delphi, to jeszcze trzaba dodać, że
x=(warunek)? coś : coś2
to to samo co:
if (warunek)
x=cos;
else
x=coś2;
pzdr
bartekltg
Następne wpisy z tego wątku
- 28.09.15 09:57 Tomasz Kaczanowski
Najnowsze wątki z tej grupy
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- 2024-11-28 droga laweta
- 2024-11-28 Co tam się odpierdala w tej Warszawie?
- 2024-11-28 skąd się biorą tacy debile?
- 2024-11-28 JDG i utylizacja sprzetu
- 2024-11-27 Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Katowice => Technical Artist <=
- 2024-11-28 Bydgoszcz => QA Engineer <=
- 2024-11-28 Zielona Góra => Spedytor międzynarodowy <=
- 2024-11-28 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-27 Zielona Góra => Senior PHP Developer <=
- 2024-11-27 Warszawa => Senior Java Developer <=