請指教「如何判斷電腦執行的Windows版本」之技巧 |
尚未結案
|
Akqj1098
一般會員 發表:14 回覆:60 積分:14 註冊:2002-05-17 發送簡訊給我 |
在拜讀過天使大人的大作
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18235
後,在驚嘆之餘,想請教程式中的技巧
文中,
OrdHigh := (OSVersion.dwBuildNumber shr 24) and $FF;
OrdLow := (OSVersion.dwBuildNumber shr 16) and $FF; 天使大人已提醒
「and 就是數學的邏輯AND運算
$是代表十六進位
and $ff 就是用256取餘數」
依然存在的疑問是:
1.這裡做「AND」的作用為何?(為何是用256取餘數呢?ff 是256?255?)
2.為何您會『想到』要用AND呢? 謝謝您的指教
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
表示 16進制 10進制 8進制 2進制 F = 15 = 17 = 1111 -------------------------------------------- 邏輯 1100 AND 1010 ---- 1000 ----------------------- 1100 OR 1010 ---- 1110 ----------------------- 1100 XOR 1010 ---- 0110 ----------------------- 範例 1234 and $FF = 210; 圖示 10011010010 AND 00011111111(255以上都為0了,所以只能求255以下的值) ----------------- 00011010010 = 210 學而時習之不亦樂乎!發表人 - jest0024 於 2004/05/11 18:16:56 |
Akqj1098
一般會員 發表:14 回覆:60 積分:14 註冊:2002-05-17 發送簡訊給我 |
引言:謝謝您 作AND的動作我會 但,作AND的目的為何? 還是沒有參透.....表示 16進制 10進制 8進制 2進制 F = 15 = 17 = 1111 範例 1234 and $FF = 210; 圖示 10011010010 AND 00011111111(255以上都為0了,所以只能求255以下的值) ----------------- 00011010010 = 210 學而時習之不亦樂乎!發表人 - jest0024 於 2004/05/11 18:16:56 |
Sei
一般會員 發表:22 回覆:38 積分:17 註冊:2002-05-22 發送簡訊給我 |
今天一整天都在拜讀這個網站的資料http://www.jazarsoft.com/codebook/index.php http://www.jazarsoft.com/codebook/view.php?id=24
Uses Windows; function IsWin2000 : Boolean; var OS :TOSVersionInfo; begin ZeroMemory(@OS,SizeOf(OS)); OS.dwOSVersionInfoSize:=SizeOf(OS); GetVersionEx(OS); Result:=(OS.dwMajorVersion>=5) and (OS.dwPlatformId=VER_PLATFORM_WIN32_NT); end;這篇判斷系統裡的用ZeroMemory,和站長的這段一樣嗎? OrdHigh := (OSVersion.dwBuildNumber shr 24) and $FF; OrdLow := (OSVersion.dwBuildNumber shr 16) and $FF;發表人 - Sei 於 2004/05/12 16:26:51 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |