原创 整數運算

整數運算 目錄 無符號加法 補碼加法 補碼的非 無符號乘法 補碼乘法 除以2的冪   小結 無符號加法 例如:x=9,y=12的位表示分別是[1001]和[1100]。他們的和是21,5位的表示是[10101],如果丟棄最高位,那麼我們得

原创 機器語言的作用和Inter處理器的發展歷程

  編譯器基於編程語言的規則、目標機器的語言指令集和操作系統遵循的慣例,經過一系列過程生成機器代碼。GCC C語言編譯器以彙編代碼形式產生輸出,彙編代碼是機器代碼的文本表示,給出程序中的每一條指令。然後,GCC調用匯編器和鏈接器,根據彙編

原创 Linux複習(系統編程4)

父子進程 1.父子進程之間數據(.data\  .bss\   .stack\   .heap),都是不共享的   父子進程任意一個進程對數據的修改並不會影響另一個進程的數據 2.寫時拷貝技術  ——  .heap段    fork之後,

原创 網絡編程——TCP編程

TCP協議:面向連接,可靠的,字節流服務 服務器:socket      bind     listen    accept    recv/send     close 客戶端:socket     connect     send/r

原创 TCP,UDP的報頭詳解

本博客借鑑謝希仁第六版《計算機網絡》的第九章 TCP報頭  (1)源端口和目的端口 各佔2個字節,分別寫入源端口號和目的端口號,TCP的分用功能是通過端口實現的。 (2)序號 佔4個字節。序號範圍是[0,2^32-1],共2^32(即42

原创 多進程編程——信號量

一、爲什麼會引進信號量   在這裏,我們先說明幾個概念。  1.同步:同步亦稱直接制約關係,它是指爲完成某種任務而建立的兩個或多個進程,這些進程因爲需要在某些位置上協調它們的工作次序而等待。傳遞信息所產生制約關係。進程的直接制約關係就是源

原创 超詳細的IEEE標準下的浮點數規則,附實例和規則總結

浮點數的歷史 浮點數表示的有理數進行編碼。它對執行涉及非常大的數字,非常接近0的數字,以及作爲實數運算的近似值的計算,都有着非常大的作用。 直到20世紀80年代,每個計算機的製造商都製造出了自己的浮點數規則,以及對浮點數執行運算的細節。另

原创 關於C++11 智能指針 的詳細說明以及使用

  由於C++沒有像java那樣的內存回收機制,我們在new一個資源的同時需要考慮其的delete,但是由於種種原因,忘記delete,程序異常退出沒有執行到delete的代碼等,都會導致內存泄漏,因此,我們引入了智能指針這種機制,它可以

原创 整數表示,無符號數和有符號數的相互轉換,擴大,截斷位表示

接上面的博客,繼續介紹數字表示 第二節 整數表示  在本節中,我們會介紹兩種不同的整數表示方式:一種只能表示非負數,另一種既能表示正數,還能表示負數和0。後面我們會發現它們在數學屬性和機器級實現方面的密切相關。我們還會研究擴展或者收縮一個

原创 關於C++11 thread 的超詳細介紹和使用

  在windows上面啓線程時,用的是windows的API,前輩說可以去學一下C++11 提供的線程庫,比較方便靈活。下面就介紹一下thread的用法。 std::thread::thread thread() noexcept;

原创 尋址和字節順序,字符串編碼以及位級,邏輯,移位運算

  這篇博客借鑑於深入理解計算機系統的第二章,也算是我看完書後的總結。   我們一般研究三種重要的數字表示,第一種是無符號編碼,它是基於傳統的二進制表示法,一般表示的是大於或等於的零的數字。第二種是補碼編碼,它是有符號整數最爲常見的表達方

原创 C語言複習第一節

複習難點 1.float類型在內存中的存儲方式  指數位的計算方法,找到化爲二進制數後的浮點數中第一個1的位置,如數12.25中應該將小數點左移3位,移到浮點數中第一個1的位置,再比如數0.25,化爲二進制爲0.01,移到第一個1的位置

原创 野指針和無效指針

無效指針的野指針區別 無效指針:它曾經指向一個有效地址,但是現在不再指向有效地址,就是原來的那塊地址不能通過這個指針區訪問了。這通常是因爲指針所指的內存單元被釋放了並且不再有效了。無效指針存在並沒有什麼問題,除非你嘗試通過這個指針訪問指向

原创 並行和併發,同步和異步的區別

  老是忘記併發和並行,同步和異步之間的區別,今天寫篇博客,加深印象。 併發 & 並行  併發:當有多個線程在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的線程,它只能把CPU運行時間劃分成若干個時間段,再將時間段分

原创 三種I/O複用的比較

三種I/O複用的比較 系統調用 select poll epoll   事件集合 用戶通過3個參數分別傳入感興趣的可讀、可寫及異常等事件,內核通過對這些參數的在線修改來反饋其中的就緒事件。這使得用戶每次調用selec