2012年2月21日 星期二

強制轉換二維陣列的行列數

有時在寫程式時,陣列會依照不同的演算法需要而改變行列的存取方式。

透過強轉型可以辦到這種要求:

  int main(int argc,char *argv[])
{
int row = 4;
int arr[5][5] = {{11,12,13,14,15},
{21,22,23,24,25},
{31,32,33,34,35},
{41,42,43,44,45},
{51,52,53,54,55}};

cout << arr[2][1] << endl;
//存取一個(2,1)的元素
//等效於*(arr + 2*5 + 1) => 32

cout << ((int*)arr)[11] << endl;
//轉換成一個一維的整數陣列
//等效於*(arr + 11) => 32

cout << ((int (*)[row])arr)[2][3] << endl;
//轉換成一個4列的整數陣列
//等效於*(arr + 2*4 + 3) => 32


return 0;
}


其他維度的轉型方法大同小異。

2012年1月27日 星期五

MC34063 直流轉換控制IC


(烏漆抹黑什麼都看不到.....)


MC34063是一顆直流轉換切換的IC,用非常少的零件就能製作,
就能達到升壓、降壓和負電壓等應用。

2012年1月17日 星期二

解決在UBUNTU環境下OPERA 11無法使用iBus的問題

如果有在UBUNTU下使用OPERA一定會發現IBUS是沒辦法啟動的

解決方法

1.安裝QT的immodule

sudo apt-get install ibus-qt4





可能已經安裝過了,為了保險起見再檢查一下。

2.打開/usr/bin/opera,

sudo gedit /usr/bin/opera



在"exec /.../opera"之前插入

export QT_IM_MODULE=xim
export XMODIFIERS="@im=ibus"




3.在Preferences>Advanced>Shortcuts>Keyboard setup>Opera Standard中

搜尋space ctrl(或其他啟動輸入法衝突的快速鍵),是回到首頁的快速鍵,把它刪除或改成其他按鍵。



4.重開OPERA就OK了

其他輸入法我想方法應該是差不多的


2012年1月9日 星期一

2012

好久沒有在玩網誌了


舊的文章有的連結失效
有的連圖片也不知道丟哪了

側欄的元素失去功能
整個Blog讀取速度也下降不少

這幾天應該花點時間來修繕
希望將最近學到的整理些資料出來

不然就哪天就全部忘光光了