Java - Strictfp - dlaczego nie ma tego w c++
Ostatnio zmodyfikowano 2017-05-12 17:16
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-05-11 23:44:57 Zle sie wyrazilem. Nie mozna sobie (podobno) stworzyc obiektu o rozmiarze np. 1. Bita. Musi zajmowac to przynajmniej bajt. Nie mozemy operowac na pojedynczych bitach. Ale pewnie sie myle, takze prosze o sprostowanie Ps tak jak napisales, najmniejsza adresowalna jednostka pamieci to bajt. Dlaczego nie bit? |
|
1aam2am1 |
» 2017-05-12 00:24:53 A dlaczego tak? Z powodu budowy komputera. W mikroprocesorze są szyny danych np 8 bit, 16 bitowe, 32 i 64 bitowe. Od tego procesory biorą nazwę. Najstarszy mikroprocesor miał już szynę 8 bitową więc gdy odwoływał się do pamięci to po szynie szło 8 bitów nie jeden mógł pracować wydajniej. Pamięci rejestry , szyny danych, rozkazy były przygotowywane aby tak pracować. Bo było to wydajniejsze i jest to pozostałość po tamtym czasie. Jak to sobie wyobrażasz. Że nagle w pamięci gdzie wszystko masz poukładane ósemkami wstawisz jeden bit i wszystko inne przesuniesz o 7 podczas odczytu i zapisu. To by było zbyt wolne. Oczywiście bool zajmuje 1 bajt. Ale z tablicą booli tak nie jest zazwyczaj kompilator to sobie skompresuje. Bo tak będzie mu bardziej wydajnie.
Oraz z taką budową pamięci możesz zadeklarować jej więcej. Masz więcej pamięci masz więcej swobody w programowaniu. |
|
Saran |
» 2017-05-12 01:19:51 W zwykłych tablicach kompilator raczej nie skompresuje. Jedynie std::vector < bool > kompresuje boole, co może być powodem paru problemów... dlatego lepiej tego nie używać. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-05-12 01:21:38 Logiczne :DD Ale co w takim razie miał na mysli pan Jankowalski25 Poza tym, klasyczne ASCII działa na siedmiu bitach, więc nie zawiera polskich znaków. |
Co znaczy "dziala na 7 bitach"? Szczegolnie, z znaki ASCII to numery od 0 do 256, a 256 to 8 bitow? @up problemow? Powinienem wiedziec jakich? :p |
|
pekfos |
» 2017-05-12 02:07:51 Co znaczy "dziala na 7 bitach"? Szczegolnie, z znaki ASCII to numery od 0 do 256, a 256 to 8 bitow? |
256 to 9 bitów, a ASCII to numery 0-127. |
|
Saran |
» 2017-05-12 02:54:00 @latajacaryba https://isocpp.org/blog/2012/11/on-vectorbool No i warto wspomnieć, że jest także rozszerzone ASCII, posiadające znaki 0-255. |
|
Saran |
» 2017-05-12 02:56:26 do usuniecia |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-05-12 17:16:03 Przepraszam, 255 to 8 bitow. Natomiast moj kompilator(?) korzysta z rozszerzonego ASCII, bo moge uzywac znakow ktore są tabeli wrzuconej przez Sarana. Wszystko w takim razie jasne :) Dziwi mnie tylko fakt, ze podstawowe 7 bitowe ascii jest wlasnie 7 bitowe, skoro i tak zajmuje 1 bajt. 1 bit jest wiec "nieuzywany" Zostaje tylko pytanie czym jest ta nieszczesna jednostka kodujaca i wspolrzedna kodowa znaku. |
|
1 « 2 » |