1. 程式人生 > >計算機體系、語言的基礎認識

計算機體系、語言的基礎認識

轉換成 script body 存儲 bsp 之間 外存 異或 隱式

馮諾依曼體系: I/O:輸入設備與輸出設備 CPU: 運算器:計算數據 控制器:控制程序的運行 CPU還有寄存器與多級緩存 存儲器:磁盤(外存);內存(快):掉電即失 所有數據從磁盤到內存再到CPU 數據從內存先到寄存器再被CPU使用 計算機語言: 編譯語言:源代碼經本地編譯後裝還成目標機器的CPU指令 解釋語言:源代碼經解釋器(Cpython、Ipython、pypi等)解釋為字節碼(bytecode),運行在虛擬機上,虛擬機將字節碼轉換為物理CPU識別的指令去運行(python,java輸入解釋型語言) 動態語言:變量類型不需要事先聲明,可隨時賦值為其他類型(python) 靜態語言:變量類型需要事先聲明,且不可更改(java、c++、c#等) 強類型語言:不同類型之間不可操作,必須轉換成同一類型(沒有隱式轉換,python,java等) 弱類型語言:不同類型之間可以操作,自動隱式轉換(javascript) python是解釋型動態強類型語言
python是有垃圾回收GC機制的,引用計數增加與減少,引用計數減少到0時會被GC捕獲,在適當的時候進行垃圾回收 源碼、反碼和補碼: 數據在計算機是以二進制形式存在的,計算機計算數據(加法)時用補碼來運算 正數的源碼、反碼和補碼相同 負數: 源碼轉化為補碼:符號位不變其余按位取反後加1 補碼的補碼為源碼 例子:1-2(等同於-2+1,計算機不會減法) 1、先取-2與1的補碼,-2補碼為:1110;1的補碼為:0001 2、兩個補碼相加為:1111 3、因1111為補碼,所以需要將其轉換成源碼,而補碼的補碼為源碼 4、將1111符號位不變其余按位取反後加1後為:1001 5、所以最終運算結果為1001(源碼),轉換為十進制即為-1 位運算符(二進制運算,負數需要先將其轉換為補碼再進行位運算):
&:按位與;都為1時為1(以正整數為例:1010&1100為1000) |:按位或;有一個為1即為1(以正整數為例:1010|1100為1110) ~:按位取反:需要先將整數轉換為補碼後在取反;例子:~12 1、0000 1100(12的補碼) 2、1111 0011 (取反後為補碼,下一步將補碼轉換成源碼) 3、1000 1101 (符號位不變,其余按位取反後加1即為源碼) 4、轉換為十進制即為-13 ^:異或:按位相同為0,不同為1 <<:按位左移 >>:按位右移 運用位運算符是提高效率的方法。熟練使用位運算符

計算機體系、語言的基礎認識