Czy istnieje programowy sposób na wykrycie, czy korzystasz z architektury big-endian czy little-endian? Muszę być w stanie napisać kod, który będzie wykonywany w systemie Intel lub PPC i używać dokładnie tego samego kodu (tj. Bez kompilacji
Endianness odnosi się do sposobu, w jaki wartości wielobajtowe są przechowywane w pamięci, przesyłane między urządzeniami lub przechowywane na dysku. Wartości „Big-Endian” są przechowywane z najbardziej znaczącym bajtem na początku, a wartości „Little-Endian” są przechowywane z najmniej znaczącym bajtem na początku. Inne porządki bajtów są możliwe, ale bardzo rzadkie i nie można ich opisać w ten sposób.
Czy istnieje programowy sposób na wykrycie, czy korzystasz z architektury big-endian czy little-endian? Muszę być w stanie napisać kod, który będzie wykonywany w systemie Intel lub PPC i używać dokładnie tego samego kodu (tj. Bez kompilacji
Jak przekonwertować między wartościami big-endian i little-endian w C ++? EDYCJA: Dla jasności muszę tłumaczyć dane binarne (zmiennoprzecinkowe podwójnej precyzji oraz 32-bitowe i 64-bitowe liczby całkowite) z jednej architektury procesora na drugą. Nie wymaga to pracy w sieci, więc ntoh () i...
Przypuśćmy, że mam numer 'numb'=1025 [00000000 00000000 00000100 00000001] reprezentowaną : Na maszynie Little-Endian: 00000001 00000100 00000000 00000000 Na maszynie Big-Endian: 00000000 00000000 00000100 00000001 Teraz, jeśli zastosuję lewy Shift na 10 bitach (tj .: numb << = 10),...
Chcę przechowywać niektóre dane w tablicach bajtów w Javie. Zasadniczo tylko liczby, które mogą zająć do 2 bajtów na liczbę. Chciałbym wiedzieć, jak mogę przekonwertować liczbę całkowitą na 2-bajtową tablicę bajtów i odwrotnie. Znalazłem wiele rozwiązań googlujących, ale większość z nich nie...
Czy istnieje jednowierszowa definicja makra określająca endianness maszyny? Używam następującego kodu, ale konwersja go na makro byłaby zbyt długa. unsigned char test_endian( void ) { int test_var = 1; unsigned char *test_endian = (unsigned char*)&test_var; return (test_endian[0] ==...
Pytam, ponieważ wysyłam strumień bajtów z procesu C do Javy. Po stronie C 32-bitowa liczba całkowita ma LSB to pierwszy bajt, a MSB to czwarty bajt. Moje pytanie brzmi: po stronie Javy, kiedy odczytujemy bajt wysłany z procesu C, czym jest endian po stronie Javy? Pytanie uzupełniające: Jeśli...
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 7 lat temu . Popraw to pytanie...
#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Wyświetla 0!! Jak to możliwe? Jaki jest tego powód? Celowo umieściłem %dw printfoświadczeniu znak, aby zbadać zachowanie printf.
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to...
Czytałem, że kolejność pól bitowych w strukturze zależy od platformy. A jeśli użyję różnych opcji pakowania specyficznych dla kompilatora, czy ta gwarancja będzie przechowywana we właściwej kolejności, w jakiej są zapisywane? Na przykład: struct Message { unsigned int version : 3; unsigned...