Potrzebuję implementacji wydajnej tablicy bitów w C. Z tego, co widziałem, C nie obsługuje tego, więc możesz użyć tablicy liczb całkowitych (według jednej strony, na którą patrzyłem) a następnie użyj przesunięcia, aby uzyskać dostęp do poszczególnych bitów. Czy po prostu deklaracja tablicy bool byłaby tym samym lub czy jest to mniej pamięci wydajne?bool array vs bit array w C
5
A
Odpowiedz
3
Tak, prosta tablica _Bool
wymaga więcej pamięci niż tablica liczb całkowitych połączona z pewnym przesunięciem bitowym. Macierz _Bool
przechowuje jeden bit danych w przestrzeni sizeof(_Bool)
(zwykle jeden bajt). Tablica całkowita może przechowywać o wiele więcej bitów na bajt (minimum 8).
Powiązane problemy
- 1. C/C++ Bit Array lub Bit Vector
- 2. Czas pracy Array # unshift vs Array # shift
- 3. C++ array vs C# ptr speed confusion
- 4. Vector vs Array Performance
- 5. Char Array VS Char *
- 6. scala - array vs arrayseq
- 7. Porównywanie wydajności NSArray vs C Array
- 8. Numpy - array vs asarray
- 9. Array vs listy w Elm
- 10. C++ Array vs Vector test objaśnienia testu
- 11. 2d array vs struktury tablicy
- 12. JavaScript Array Object vs Array Like Objects - Clarification
- 13. Sparse vs Normal Array Matlab
- 14. PHP array vs PHP Constant?
- 15. Jagged array versus one big array?
- 16. char array vs. wskaźnik char
- 17. Zachowanie std :: array <bool> vs. std :: vector <bool>
- 18. C# Vectorized Array Addition
- 19. C# Array Mapa/Zbierz
- 20. C# Array lub Dictionary?
- 21. C++ Rewers Array
- 22. Array, które mogą być accesed używając array [ 'name'] w C#
- 23. Cython inicjalizacji C-array
- 24. C++ zamiennik std :: array
- 25. foreach w C++ int array
- 26. Array klasa implementacja w C#
- 27. Android string-array to Array
- 28. Przenoszenie C# 3D Array do JS 3D Array
- 29. Array struktury w Swift
- 30. Postgres Array Append & Array Length for "Array Push"
''bool' w C jest wewnętrznie" int ". '_bool []' używa około 32 razy (dawaj lub weź) tyle pamięci co tablica liczb całkowitych z przesunięciem bitowym. – EOF
Jeśli korzystasz z C++, to std :: vector oferuje optymalizowaną przestrzeń dyskową, którą opisujesz. –
@EOF: '_Bool' (nie' _bool') ma zwykle 1 bajt, nie jest tego samego rozmiaru co 'int'. –