Int 16 bit

0

Witam.
Rozmawialiśmy na zajęciach o 16 bit'owym incie i tu moje pytanie czy coś takiego jest trudne do ogarnięcia? Jeśli macie jakieś pomysły to podzielcie się nimi ze mną :)

0

Co ma być "trudne do ogarnięcia"?
Zakładając, że rozumiesz jak działają 32-bitowe int-y, nie powinieneś mieć problemu ze zrozumieniem zasady działania nawet 3-bitowych ;P

0

16 bitowy int to inaczej "short". Chyba że chodzi ci o to ,że jak kompilujemy program na jakąś inną architekturę to rozmiar zwykłego "int" jest zmienny aby zapewnić przenośność programów definiuje się inne nazwy za pomoca typedefa(coś w rodzaju int_32 itp) dzięki temu jak będziemy kompilować program na inną architekturę wystarczy zmienić instrukcję typedef a nie wszystkie miejsca programu gdzie wystąpiła zmienna int.

0

aby zapewnić przenośność programów definiuje się inne nazwy za pomoca typedefa(coś w rodzaju int_32 itp) dzięki temu jak będziemy kompilować program na inną architekturę wystarczy zmienić instrukcję typedef a nie wszystkie miejsca programu gdzie wystąpiła zmienna int.

Generalnie nie trzeba robić tego samemu, jest od tego nagłówek <stdint.h> / <cstdint>. Choć domyślnie nie wszędzie (w C od C99, a w C++ od 0x).

1

Chyba nie do końca wiem co mam zrobić. Dochodzę do wniosku, że jestem jakiś wycofany intelektualnie :|

0

No my za bardzo nie wiemy jaki jest twój problem.

0

Chce zrobić INT 16 bit. Bo normalny int ma 32 bit. I nie chce short int tylko po prostu INT 16. Teraz jasno zdefiniowałem swoją potrzebę, bynajmniej tak mi się wydaje.

0
Etho napisał(a):

Bo normalny int ma 32 bit.

Nieprawda.
http://www.cplusplus.com/doc/tutorial/variables/

Etho napisał(a):

I nie chce short int tylko po prostu INT 16.

Czyli, że nie chcesz short int, ale chcesz short int?
Ponieważ na 32-bitowych komputerach, short int to właśnie jest ten 16-bitowy integer.

A najlepiej zainteresuj się jednak nagłówkiem stdint.h (dla C)/cstdint (dla C++); masz tam tę deklarację: int16_t.
Ogólnie deklaracje w nagłówku cstdint oraz jego C-owym odpowiedniku są zarządzane przez kompilator, więc masz pewność, że to int16_t niezależnie od systemu i architektury, zawsze będzie 16-bitowym int-em.

1 użytkowników online, w tym zalogowanych: 0, gości: 1