Ich habe in bit string
letzter Zeit etwas über den Datentyp gelernt und bin ziemlich neugierig auf:
Am Ende dieser Dokumentseite befindet sich der Satz:
... plus 5 oder 8 Byte Overhead, abhängig von der Länge des Strings
Wie werden Bitstrings in anderen Sprachen wie PHP, Java, C #, C ++ usw. über Treiber wie Npgsql, ODBC usw. behandelt?
Bei Frage 1 ist die Verwendung von smallint oder bigint wesentlich speichereffizienter und bietet möglicherweise einen Leistungsgewinn, da Ganzzahlen überall unterstützt werden. Die meisten Programmiersprachen verarbeiten problemlos Bitoperationen für Ganzzahlen. Wenn dies der Fall ist, wozu dient dann der Datentyp Bitfolge? Ist es nur für Fälle, die eine große Anzahl von Bitmasken benötigen? Bitfeldindizierung vielleicht? Ich bin eher neugierig, wie die Bitfeldindizierung in PostgreSQL durchgeführt wird.
Für # 2 bin ich verwirrt, mehr als neugierig. Was ist zum Beispiel, wenn ich Wochentag-Bitmasken in einem Bit (7) -Feld speichere, ein Bit für einen Tag, wobei das niedrigste Bit für Montag steht. Dann frage ich nach dem Wert in PHP und C ++. Was bekomme ich? In der Dokumentation steht, dass ich eine Bit-Zeichenfolge haben werde, aber eine Bit-Zeichenfolge kann ich nicht direkt verwenden - wie bei ganzen Zahlen. Sollte ich dann in diesem Fall das Bitfeld aufgeben?
Kann jemand erläutern, warum und wann ich etwas oder etwas variieren sollte?