Я пачатковец у праграмаванні. У чым розніца паміж 32-бітнай і 64-бітнай сістэмамі? Што я павінен улічваць пры напісанні праграмы C ++?


адказ 1:

Што менавіта ўяўляе сабой N-бітную сістэму, не заўсёды ўзгадняецца. Я асабіста ўяўляю камп'ютэрную сістэму, у якой універсальныя рэгістратары працэсара маюць N біт.

Напрыклад, на маім другім кампутары быў працэсар Motorola 68008: ён меў 32-разрадныя рэгістратары, але працаваў унутрана з 16 бітамі (палова рэгістрацыі) і толькі знешне размаўляў з памяццю ў 8 біт адначасова. Хоць ён уваходзіў у 32-разрадную сям'ю працэсараў, часам яго называлі 8/16/32 бітным працэсарам. Па маім вызначэнні, гэта 32-разрадны працэсар.

Intel i486 таксама мае 32-разрадныя універсальныя рэгістры, але таксама 80-бітныя рэгістры з плаваючай кропкай: аднак ніхто не разглядае яго як 80-бітны кампутар.

Калі вы пішаце C ++, вы, як правіла, абаронены ад усіх гэтых лічыльнікаў бітаў, але яны адлюстроўваюцца ў памеры, арыентацыі і дыяпазоне некаторых асноўных тыпаў. Напрыклад, int звычайна з'яўляецца 32-бітным цэлым тыпам і long амаль амаль заўсёды з'яўляецца 64-бітным цэлым тыпам. У залежнасці ад платформы яна таксама можа быць доўгай. Акрамя таго, звычайна ўказальнікі даўжынёй 4 байты на 32-бітных платформах і 8 байтаў на 64-бітных платформах (і гэта часта галоўная перавага 64-бітных сістэм у параўнанні з 32-разраднымі сістэмамі: яны могуць з-за наступных фактараў больш RAM адрас шырэй паказальнікаў).