如何取得char中的每一個bit值 |
尚未結案
|
cyberboy
一般會員 發表:2 回覆:3 積分:1 註冊:2003-04-28 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
cyberboy
一般會員 發表:2 回覆:3 積分:1 註冊:2003-04-28 發送簡訊給我 |
|
brant
一般會員 發表:1 回覆:64 積分:23 註冊:2003-04-07 發送簡訊給我 |
引言:引言: 各位大大 想請問一下 假設有一個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 發送簡訊給我 |
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 發送簡訊給我 |
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.... 就可以取出資料了
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |