原创 大數的乘法(包括浮點數)

一.大數乘法 我們知道,要運算兩個數的乘法,c、c++語言裏有專門的運算符*。但是當兩個數超過一定的範圍時,用普通的運算符會產生溢出,並不能得到正確的結果。如何進行運算呢?       首先,要想保存一個大數,用正常的整形或浮點類型

原创 棧,堆分區

       在C\C++中,通常可以把內存理解爲4個分區:棧、堆、全局/靜態存儲區和常量存儲區。下面我們分別簡單地介紹一下各自的特點。 一.   區域劃分 堆: 是大家共有的空間,分全局堆和局部堆。全局堆就是所有沒有分配的空間,局部堆就

原创 函數指針與函數指針數組的定義與使用

函數指針與函數指針數組的定義與使用函數指針:指向函數的指針定義方法爲double add(double a,double b);double sub(double a,double b);double mul(double a,doubl

原创 虛表/虛指針

虛函數在c++中的實現機制就是用虛表和虛指針,但是具體是怎樣的呢?從more effecive c++其中一篇文章裏面可以知道:是每個類用了一個虛表,每個類的對象用了一個虛指針。具體的用法如下:class A{public:virtual

原创 關鍵字volatile有什麼含義?並給出三個不同的例子

 一個定義爲volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了.精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器裏的備份.下面是volatile變

原创 死鎖

什麼是死鎖? 如果一個進程集合裏面的每個進程都在等待只能由這個集合中的其他一個進程(包括他自身)才能引發的事件,這種情況就是死鎖。 這個定義可能有點拗口,一個最簡單的例子就是有資源A和資源B,都是不可剝奪資源,現在進程C已經申請了資

原创 網絡互聯參考模型(詳解)

網絡互聯參考模型 1. 什麼是協議   爲了使數據可以在網絡上從源傳遞到目的地,網絡上所有設備需要“講”相同的“語言” 描述網絡通信中“語言”規範的一組規則就是協議 例如:兩個人交談,必須使用相同的語言,如果你說漢語,他說阿拉

原创 STM32 NVIC 中斷優先級管理

CM3 內核支持 256 箇中斷,其中包含了 16 個內核中斷和 240 個外部中斷,並且具有 256級的可編程中斷設置。但 STM32 並沒有使用 CM3 內核的全部東西,而是隻用了它的一部分。STM32 有 84 箇中斷,包括 16

原创 作業、進程、線程

1. 基本概念 作業:用戶在一次解決或是一個事務處理過程中要求計算機系統所做的工作的集合,它包括用戶程序、所需要的數據集控制命令等。作業是由一系列有序的步驟組成的。作業的完成要經過作業提交、作業收容、作業執行和作業完成4個階段。在執行

原创 八大排序算法之二希爾排序(C語言)

希爾排序是一種插入排序法,它出自D.L.Shell,因此而得名。Shell排序又稱作縮小增量排序。   基本思想:   不斷把待排序的對象分成若干個小組,對同一小組內的對象採用直接插入法排序,當完成了所有對象都分在一個組內的排序後,

原创 C++ STL中迭代器介紹

迭代器 迭代器提供對一個容器中的對象的訪問方法,並且定義了容器中對象的範圍。迭代器就如同一個指針。事實上,C++的指針也是一種迭代器。但是,迭代器不僅僅是指針,因此你不能認爲他們一定具有地址值。例如,一個數組索引,也可以認爲是一種迭代器。

原创 STM32 IO模式

一、總結在STM32中選用IO模式       1、浮空輸入GPIO_IN_FLOATING ——浮空輸入,可以做KEY識別,RX1       2、帶上拉輸入GPIO_IPU——IO內部上拉電阻輸入       3、帶下拉輸入GPIO

原创 c#線程同步(3)----monitor

首先lock和Minitor有什麼區別呢? 其實lock在IL代碼中會被翻譯成Monitor。也就是Monitor.Enter(obj)和Monitor.Exit(obj). lock(obj) { } 等價爲: try {       

原创 C#線程同步(1)-------輕量級同步Interlock

    在c#裏面,實現線程同步方法有很多種。我瞭解到的至少有8種。這裏先講下,一種比較簡單的同步方法-------輕量級同步Interlock。         爲什麼說它是輕量級呢?因爲它僅對整形數據(即int類型,long也行)

原创 八大排序算法之三簡單選擇排序(c語言)

選擇排序—簡單選擇排序(Simple Selection Sort) 基本思想: 在要排序的一組數中,選出最小(或者最大)的一個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n