我們在學習中,很多東西我們都以為我們已經會了,但當我們再次見到的時候,也許會遇到一些問題。
我們都知道,賦值運算子左方的運算元必須是乙個變數,而右側的運算元則可以是任意表示式。這個規則我們都耳熟能詳,但你是否真正理解其背後的含義呢?
在博主初學程式設計,學c++的運算子時,曾產生這樣的疑問,假設有下面這樣一段**:
int a = 0, b, c;
b = a + b = 5;
那麼這段程式該怎麼執行呢?本著不恥下問的態度,尋求了諸多前輩的幫助,結果有點點慘不忍睹。。。得到的答案五花八門,博主都有點懷疑人生。之後拿編譯器測試之後,才意識到這段**有著明顯的語法錯誤,賦值運算子左側寫為 a+b 本身已經不合法,又談何執行順序呢。
機器數(computer number)是將符號「數位化」的數,是數字在計算機中的二進位製白哦是形式。機器數有兩個特點:一是符號數位化,二是其數的大小受機器字長的限制。
定點數一般用來表示整數。我們認為整數沒有小數部分,小數點固定在數的最右邊。整數可分為無符號整數和有符號整數兩類。無符號整數的所有二進位制位全用來表示數值的大小;有符號整數用最高位表示數的正負,而其他位表示數值的大小。例如十進位制整數-65的計算機內表示可以是11000001。
浮點數用於表示除了整數以外的實數,表示方法是:把乙個實數的範圍和精度分別用階碼和尾數來表示。在計算機中,為了提高資料表示精度,必須唯一地表示小數點的位置,因此規定浮點數必須寫成規範化的形式,即當尾數不為0時,其絕對值大於或者等於0.5且小於1(注:因為是二進位制數,要求尾數的第1位必須是1)。格式: 階碼符號位|階碼|尾數符號位|尾數( ps:「|」只是為了表示隔斷,實際是沒有的)
eg1、例如設機器字長為16位,尾數為8位,階碼為6位,則二進位制實數-1101.010的機內表示為0|000100|1|11010100
eg2、例如設機器字長為16位,階碼用6位,尾數用8位的話,二進位制實數-1.1101的機內表示表為 0|000001|1|11101000
另註:機器碼和機器數是兩個不同的概念。
機器碼:將硬體序列號經過一系列加密、雜湊形成的一串串行號。
機器數:將符號「數位化」的數,是數字在計算機中的二進位制表示形式。
持續更新中!!!
那些經常使用去容易忽視的小知識點
1 將list轉為陣列的乙個非常方便的方法toarray。常用 linkedlistlist new linkedlist for int i 0 i 10 i system.out.println list list string arr list.toarray new string list....
PHP程式設計經常容易記亂的知識
php經常容易記亂的知識 1.echo和print的區別 php中echo和print的功能基本相同 輸出 但是兩者之間還是有細微差別的。echo輸出後沒有返回值,但print有返回值,當其執行失敗時返回flase。因此可以作為乙個普通函式來使用,例如執行下面的 後變數 r的值將為1。r print...
前端容易忽略的零散小知識
1.js中沒有私有成員的概念,不過在函式中有私有變數。2.css檔案的載入不受跨域限制,canvas中使用drawimage貼圖會受跨域限制。3.在 ecmascript6 中,promise的狀態有三種 pending 進行中 fulfilled 已成功 和 rejected 已失敗 除了非同步操...