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ą :)
Int 16 bit
- Rejestracja: dni
- Ostatnio: dni
- Postów: 12
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
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
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Opole
- Postów: 533
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.
- Rejestracja: dni
- Ostatnio: dni
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).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 12
Chyba nie do końca wiem co mam zrobić. Dochodzę do wniosku, że jestem jakiś wycofany intelektualnie :|
- Rejestracja: dni
- Ostatnio: dni
No my za bardzo nie wiemy jaki jest twój problem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 12
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
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.