Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Java - Strictfp - dlaczego nie ma tego w c++

Ostatnio zmodyfikowano 2017-05-12 17:16
Autor Wiadomość
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?
P-160962
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.
P-160968
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ć.
P-160969
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
P-160970
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.
P-160972
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.

Extended Ascii
Extended Ascii
 
P-160974
Saran
» 2017-05-12 02:56:26
do usuniecia
P-160975
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.
P-161004
1 « 2 »
Poprzednia strona Strona 2 z 2