全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:899
推到 Plurk!
推到 Facebook!

16位元可能代表的意思

答題得分者是:TheMoon
huangcc
一般會員


發表:7
回覆:6
積分:2
註冊:2004-10-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-14 11:29:08 IP:218.172.xxx.xxx 未訂閱
各位前輩好: 小弟想請教一下各位前輩,在BCB中,出現16位元時,這個16位元可能代表的是某物件、位置、...,還是其他的意思呢???例如向下面的程式中的  sum = 0xffffffff; 及  ((sum&0x00ffffff) == 0 ,希望各位前輩給小弟指點迷津。萬分感謝~~~!!!     
 
for (int y=y1; yCanvas->Pixels[x][y]; if ((sum&0x00ffffff) == 0) yboundary[index ] = 1; else yboundary[index ] = 0; }
 
TheMoon
中階會員


發表:17
回覆:95
積分:67
註冊:2002-06-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-14 17:52:11 IP:202.39.xxx.xxx 未訂閱
引言: 各位前輩好: 小弟想請教一下各位前輩,在BCB中,出現16位元時,這個16位元可能代表的是某物件、位置、...,還是其他的意思呢???例如向下面的程式中的 sum = 0xffffffff; 及 if ((sum&0x00ffffff)) == 0 ,希望各位前輩給小弟指點迷津。萬分感謝~~~!!!
 for (int y=y1; yCanvas->Pixels[x][y];
      if ((sum&0x00ffffff) == 0) yboundary[index  ] = 1;
      else yboundary[index  ] = 0;
    }
(1)
先更正一下您的問題,
您所謂的"16位元"應該是"16進位表示法"才正確。    (2)
此段程式中sum的功能相當於一個32-bits的暫存變數,
用以暫存Image中一個Pixel的值,
sum的初設值為0xffffffff,
相當於二進位表示法1111...1111(32個1),
將sum和Image2->Canvas->Pixels[x][y]做"&運算",
然後將值存入sum中。    (3)
接著再將sum和0x00ffffff做"&運算",
判斷此點之色值是否為純黑色,
因為在24-bits影像中純黑色之RGB值為:R=0x00,G=0x00,B=0x00,
組合起來就是0x000000。
huangcc
一般會員


發表:7
回覆:6
積分:2
註冊:2004-10-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-14 19:54:33 IP:218.172.xxx.xxx 未訂閱
Hi TheMoon : 非常謝謝你!謝謝~~~!!!
TheMoon
中階會員


發表:17
回覆:95
積分:67
註冊:2002-06-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-17 17:06:30 IP:202.39.xxx.xxx 未訂閱
再補充一下,
二進位中任何數與1做&(And)運算其值不變,與0做&(And)運算其值為0,
0&1 → 0, 1&1 → 1,
0&0 → 0, 1&0 → 0,
所以某數A與0xFFFFFFFF做&運算,其結果還是A (A&0xFFFFFFFF = A),
因此sum = 0xffffffff; sum = sum&Image2->Canvas->Pixels[x][y];
這段程式碼其意義等於將Image2->Canvas->Pixels[x][y]的值指定給sum,
在此0xffffffff就如同一個邏輯運算的遮罩(32個bit皆為1的遮罩)。
系統時間:2024-05-20 23:27:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!