① vc 中怎麼表示二進制
二進製表示方法0101,在c語言中,都是以16進製表示的,也就是0x123A。可以在調試的時候,將變數拖動到監視窗口,就會顯示當前變數的數據。在這里可以選擇查看方式,二進制,十六進制等等
② 怎麼計算c++中各個數據類型的取值范圍
在c++中,我們都知道各個數據類型的值都有各自所能表達的范圍,舉個例子來說吧,我們以整型變數int為例說明怎樣去計算數據類型的取值范圍:
我們假設int在vc++開發環境中佔用兩個位元組的單元,這只是為了簡化過程的,事實上我們都知道它佔四個位元組的。
從二進制的原碼說起:
如果以最高位為符號位,二進制原碼最大為0111111111111111=2的15次方減1=32767
最小為1111111111111111=-2的15次方減1=-32767
此時0有兩種表示方法,即正0和負0:0000000000000000=1000000000000000=0
所以,二進制原碼表示時,范圍是-32767~-0和0~32767,因為有兩個零的存在,所以不同的數值個數一共只有2的16次方減1個,比16位二進制能夠提供的2的16次方個編碼少1個。
但是計算機中採用二進制補碼存儲數據,即正數編碼不變,從0000000000000000到0111111111111111依舊表示0到32767,而負數需要把除符號位以後的部分取反加1,即-32767的補碼為1000000000000001。
到此,再來看原碼的正0和負0:0000000000000000和1000000000000000,補碼表示中,前者的補碼還是0000000000000000,後者經過非符號位取反加1後,同樣變成了0000000000000000,也就是正0和負0在補碼系統中的編碼是一樣的。但是,我們知道,16位二進制數可以表示2的16次方個編碼,而在補碼中零的編碼只有一個,也就是補碼中會比原碼多一個編碼出來,這個編碼就是1000000000000000,因為任何一個原碼都不可能在轉成補碼時變成1000000000000000。所以,人為規定1000000000000000這個補碼編碼為-32768。
所以,在計算機系統中,int范圍是-32768~32767。