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

如何取得char中的每一個bit值

尚未結案
cyberboy
一般會員


發表:2
回覆:3
積分:1
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-13 16:10:24 IP:61.220.xxx.xxx 未訂閱
各位大大 想請問一下 假設有一個char為 00100001 如何取得char中的每一個bit值
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-13 16:21:04 IP:140.135.xxx.xxx 未訂閱
cyberboy您好:    
引言:假設有一個char為 00100001 如何取得char中的每一個bit值
不知有沒有誤會您的意思,可參考下面的code
 
 char bit[]="00100001";
 ShowMessage(bit[2]);  //為1
 ShowMessage(bit[3]);  //為0
依此類推
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
cyberboy
一般會員


發表:2
回覆:3
積分:1
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-13 16:34:35 IP:61.220.xxx.xxx 未訂閱
引言: 各位大大 想請問一下 假設有一個char為 00100001 如何取得char中的每一個bit值
ㄟ 不是啦 是每一個字元有八個位元組成 我想要知道如何取出一個子元中的第幾個位元 其值為何 謝謝
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-13 16:50:00 IP:61.219.xxx.xxx 未訂閱
引言:
引言: 各位大大 想請問一下 假設有一個char為 00100001 如何取得char中的每一個bit值
ㄟ 不是啦 是每一個字元有八個位元組成 我想要知道如何取出一個子元中的第幾個位元 其值為何 謝謝
#define BIT0 0x01
#define BIT1 0x02
#define BIT2 0x04
#define BIT3 0x08
#define BIT4 0x10
#define BIT5 0x20
#define BIT6 0x40
#define BIT7 0x80    char bit;
if (bit&BIT0) {
    //bit0 is set;
}
else {
    //bit0 is not set;
} 
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-13 17:03:35 IP:61.230.xxx.xxx 未訂閱
cyberboy你好:    下面的範例你參考看看:   
  
 char chr = 2;
 bool bbit;
 
 for(int k=0;k<8; k加加 )
 {
  bbit = chr >> k & 0x01;
  if (bbit)
     printf("1");
  else printf("0");
 }     2 = 00000010 shift秀出來的結果: 01000000
 
發表人 - JerryKuo 於 2003/05/13 17:20:34 發表人 - JerryKuo 於 2003/05/13 17:22:14
Royce520
高階會員


發表:18
回覆:157
積分:100
註冊:2002-09-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-13 17:15:23 IP:61.59.xxx.xxx 未訂閱
cyberboy 你好,   也可以使用 bit filed 方式來做...    struct byte2bit {  union {   byte data;   struct {    unsigned int b0 : 1; // low bit    unsigned int b1 : 1;    unsigned int b2 : 1;    unsigned int b3 : 1;    unsigned int b4 : 1;    unsigned int b5 : 1;    unsigned int b6 : 1;    unsigned int b7 : 1; // high bit   };  }; };    //然後做個 cast, 就可以這樣使用 byte n1 = 65; byte2bit p1; p1.data = n1;    // p1.b0, p1.b1.... 就可以取出資料了 <><>*真實的事物最美, 簡單的道理最好, 我能體會的 太少*
------
不要忘記呼吸,不要忘記編程! ∩__∩
系統時間:2024-05-16 7:46:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!