Time of Update: 2018-12-06
軟體的首要技術使命便是管理複雜度。為何如此呢?複雜性: 都有過這樣的經驗:同時讓你忙的太多東西,你肯定會丟三落四!雖然你忙的焦頭爛額的,但結果卻是不盡人意。 或者一件事情,但是其中包含的太多東西你總想一次性做好,這裡也做那裡也做,結果呢亂七八糟,重頭再來…… 人的大腦處理能力有限,無法同時關注太多東西,關注東西太多將會導致某些遺漏和混亂;就像是玩雜耍:拋在空中的球兩個是比較容易控制,增加複雜度兩個以上球難度會增大很多很多;在代碼設計過程中,如果關注的太多,將會越複雜,越複雜手忙腦亂勢
Time of Update: 2018-12-06
C-就代表CTRL鍵,M-就代表ALT鍵 雖然這些按鍵都可以用方向鍵和PageUp和PageDown按鍵代替,但是(1)它們在任何鍵盤上都能用。(2)當你熟練使用 Emacs 之後,你會發現用這些按鍵組合比用方向鍵要快得多,因為你的手不需要離開打字區。(3)一旦你習慣了使用這些按鍵組合,你也可以很容易地適應其它更進階的游標移動命令。 移動到螢幕中央C-l,當前行居於螢幕中央,並且游標移動到螢幕中央 上下左右的移動 上一行 C-p
Time of Update: 2018-12-06
以下操作在root帳號下操作1. yum search tftp2. 選擇tftp_server安裝3. 修改/etc/xinetd.d/tftp檔案修改設定檔如下,設定 tftp 的服務類別目錄為/home/kernel,切記 disable=noservice tftp{disable = nosocket_type = dgramprotocol = udpwait = yesdisable = nouser = rootserver =
Time of Update: 2018-12-06
今天看了程式員面試寶典的一道題1 int f(int x,int y)2 {3 return (x&y) + ((x^y)>>1); 4
Time of Update: 2018-12-06
組合語言中div運算如果被除數為32位,除數則為16位,被除數放在DX和AX中,商放在AX中,餘數放在DX中。如果被除數為16位,除數則為8位,被除數放在AX中,商放在ah,餘數放在al。但會產生一個問題,那就是當除出來的商大於AX或者AH的時候,就會產生除法溢出的錯誤。例如1000/1,被除數可以放在16位的AX中,1可以放在8位的寄存器中,得到的商為1000,超過了AH能容納的最大值,因此會造成除法溢出的問題。王爽的書中提供一個公式,可以避免除法溢出的問題子程式要求名稱:divdw
Time of Update: 2018-12-06
最近做一個Qt項目,介面中有一個QComboBox,這裡稱為combobox。要求不用滑鼠操作,用按鍵,在combobox未快顯功能表的情況,按上下左右鍵是選擇另外widget,在快顯功能表的情況下,是選擇選項。因為要求介面中的各個widget必須要能夠按照自己定義的順序被選取(按上下左右鍵),所以只能自己重寫按鍵響應,於是我給combobox安裝了過濾器,自己對combobox進行按鍵響應。有兩個痛點:1.如果判斷combobox是彈出了菜單還是未快顯功能表的狀態2.如果在快顯功能表的情況下,
Time of Update: 2018-12-06
下面題目是別人打的,省略一些東西。我的環境是windows xp實驗9 根據材料編程 在螢幕中間分別顯示綠色,綠底紅色,白底藍色的字串“welcome to masm!”。 材料: 記憶體位址空間中,B8000H~BFFFFH共32K的空間,為80*25彩色字元模式的顯示緩衝區。向這個地址空間寫入資料,寫入的內容將立即出現在顯示器上。 在80*25彩色字元模式下,顯示器可以顯示25行,每行80個字元,每個字元可以有256種屬性(背景色、前景色彩、閃爍、高亮等組合資訊)。
Time of Update: 2018-12-06
1 void fun(char* c)2 {3 4 c = new int[10];5 6 }使用這個函數為參數c分配空間,但是實際上事與願違,傳遞給fun的參數在外部未獲得分配的空間。要想達到此目的,需要使用指標的指標或者指標的引用。1 void fun(char** c)2 {3 4 *c = new int[10];5 6 }1 void fun(char*& c)2 {3 4 c = new int[10];5 6
Time of Update: 2018-12-06
遭遇: 遇到這樣一個問題: 使用GSM卡,撥打112時提示各種緊急號碼作用…… 使用CMDA卡,撥打112時提示撥打的號碼是空號??這讓我有點不知所以然,網上找到下面這篇文章,說的很詳細,轉載了。 問題描述 緊急號碼在過去的幾個項目的開發中一直是難下定論的一項問題,原因在於針對不同CP平台,不同制式的資料網路,不同的電訊廠商,都有不同的緊急號碼,而且在無SIM卡情況下緊急號碼是否能撥出也並無定論。常用的緊急號碼中: 911是北美大陸通用警示電話。 08和112是全世界GSM通
Time of Update: 2018-12-06
異或是一種基於二進位的位元運算,用符號XOR或者 ^ 表示,其運演算法則是對運算子兩側數的每一個二進位位,同值取0,異值取1。它與布爾運算的區別在於,當運算子兩側均為1時,布爾運算的結果為1,異或運算的結果為0。簡單理解就是不進位加法,如1+1=0,,0+0=0,1+0=1。性質1、交換律2、結合律(即(a^b)^c == a^(b^c))3、對於任何數x,都有x^x=0,x^0=x4、自反性 A XOR B XOR B = A xor 0 =
Time of Update: 2018-12-06
1.dB dB是一個表徵相對值的值,純粹的比值,只表示兩個量的相對大小關係,沒有單位,當考慮甲的功率相比於乙功率大或小多少個dB時,按下面的計算公式:10log(甲功率/乙功率),如果採用兩者的電壓比計算,要用20log(甲電壓/乙電壓)。) [例] 甲功率比乙功率大一倍,那麼10lg(甲功率/乙功率)=10lg2=3dB。也就是說,甲的功率比乙的功率大3 dB。 反之,如果甲的功率是乙的功率的一半,則甲的功率比乙的功率小3
Time of Update: 2018-12-06
一、實驗要求編寫一個子程式,實現將一個數值轉換為表示十進位數的字串二、程式介面名稱:dtoc 功能:將word型資料轉變為十進位數的字串,字串以0為結尾符 參數:(ax) = word型資料 ds:si指向字串的首地址 返回:無三、演算法概述1、可以反覆調用除法運算除以10d取餘數,直到商為0,可以獲得十進位各位碼 例如:10 | 12666 6 —————— 10 | 1266 6
Time of Update: 2018-12-06
轉自http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml一:列檔案清單 1. List (gdb) list line1,line2 二:執行程式 要想運行準備調試的程式,可使用run命令,在它後面可以跟隨發給該程式的任何參數,包括標準輸入和標準輸出說明符(<和>)和外殼萬用字元(*、?、[、])在內。
Time of Update: 2018-12-06
昨天調試項目時,突然發現如下訊息:QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure 'ERROR_LEVEL' is registered using qRegisterMetaType().)其中ERROR_LEVEL只是我定義的枚舉類型即enum
Time of Update: 2018-12-06
1. 互斥鎖建立 有兩種方法建立互斥鎖,靜態方式和動態方式。POSIX定義了一個宏PTHREAD_MUTEX_INITIALIZER來靜態初始化互斥鎖,方法如下: pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; 在LinuxThreads實現中,pthread_mutex_t是一個結構,而PTHREAD_MUTEX_INITIALIZER則是一個結構常量。
Time of Update: 2018-12-06
最近看了面試寶典的一個題,寫一個宏函數FIND(struc,a),要算出結構體裡的變數相對於結構體的位移量,如:1 typedef struct{2 int a;3 char b;4 int ccc;5 }b;6 FIND(b,a)//結果為0我並沒有採用書上的方法,我自己試了一下,程式如下:#define FIND(struc,a) { printf("%p\n",(&(struc.a)) - (&struc)); }typedef struct{
Time of Update: 2018-12-06
轉自http://weihe6666.iteye.com/blog/1170141條件變數是利用線程間共用的全域變數進行同步的一種機制,主要包括兩個動作:一個線程等待"條件變數的條件成立"而掛起;另一個線程使"條件成立"(給出條件成立訊號)。為了防止競爭,條件變數的使用總是和一個互斥鎖結合在一起。 一 pthread_cond_wait定義:函數原型:int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t
Time of Update: 2018-12-06
最近要學習彙編,於是從王爽的《組合語言》開始學習,我選用的是繼承的工具包MASM32,這樣就不用到處收集編譯工具了,但是這裡有幾個要注意的問題。我使用的是XP SP3虛擬機器。1.要編寫一個bat檔案@echo offset include=C:\masm32\Includeset lib=C:\masm32\libset path=C:\masm32\bin;%path%echo
Time of Update: 2018-12-06
部分摘自http://www.cnblogs.com/codingmylife/archive/2010/04/30/1725139.html最近做的項目,需要線程中間發出一個訊號,然後由進程中間的一個槽函數來接收。傳遞的參數是我自己定義的結構體和enum,不知為何發出訊號後,始終不能由槽函數接收。於是到網上搜尋了一下,有了下面的原理。 QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure
Time of Update: 2018-12-06
最近做的東西需要一個定時調用一個函數完成一定功能,於是學習了一下QTimer定時器的運用。以下代碼是我憑記憶寫下的,沒有粘貼已經成功的代碼,可能會有的地方打錯之類的,不過基本不會錯,具體可以網上搜尋類似的東西解決。先定義一個計時器1 QTimer* timer;2 QObject::connect(timer,SIGNAL(timeout()),this,SLOT(systimer()));/*第一個參數是訊號發出者,第二個參數是發出的訊號,第三個訊號是訊號的接收者,第四個參數是調用的函數*/3