Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VC++ 裡有十六進位轉二進位的函數嗎

0 views
Skip to first unread message

風閂

unread,
May 28, 2003, 1:52:55 AM5/28/03
to
將一串十六進位 A9E7528F -> 10101001.......
有這樣的函數嗎?....
thank..


風閂

unread,
May 28, 2003, 3:14:50 AM5/28/03
to
或者是有什麼函數可利用的,thank


"風閂" <zai...@pchome.com.tw> 在郵件 news:bb1isc$m5b$1...@news.seed.net.tw
撰寫...

等我學會愛...

unread,
May 28, 2003, 5:19:16 AM5/28/03
to
※ 引述《"風閂" <zai...@pchome.com.tw>, 看板: OOP》之銘言:
: 將一串十六進位 A9E7528F -> 10101001.......
: 有這樣的函數嗎?....
: thank..

16/8/2 base 這幾個互轉都不難吧?
自己試著寫看看~

這兩天才寫完大數十進位轉二進位
原則上只要記憶體夠大要轉幾位都行
程式碼...偶看看...最多不超過50行吧

加油加油囉~^^
--
[1m╭──── [31mO [32mr [33mi [34mg [35mi [36mn [m: [1;36m<不良牛牧場> [33m bbs.badcow.com.tw [32m(210.200.247.200) [37m─────╮ [m
[1m│ [5;33m ↘ [;1;32;40mWelcome to SimFarm BBS [37m-- [31mFrom : [ [37m61.59.129.20 [31m] [37;40m │ [m
[1m╰ [;32;40m◣◣ [1m◢ ◢◢ [34m《 [37m不良牛免費撥接→電話: [36m40586000 [37m→帳號: [36mzoo [37m→密碼: [36mzoo [34m》 [;32;40m ◣◣ [1m◢ [37m─╯ [m

coco

unread,
May 28, 2003, 10:28:59 AM5/28/03
to
"風閂" <zai...@pchome.com.tw> wrote in message news:<bb1nm1$nsn$1...@news.seed.net.tw>...

bitset<32> var(0xA9E7528FL);
cout<<var.to_string()<<endl;

要這樣的功能,就算自己動手做一個也要不了五行程式碼

風閂

unread,
May 28, 2003, 12:11:48 PM5/28/03
to

"coco" <co...@hifly.to> 在郵件
news:be37a37f.03052...@posting.google.com 中撰寫...

我看不懂這行是什麼耶... bitset<32> var(0xA9E7528FL);
能不能講解一下...
因為我只知土法練剛方法去做,A字串轉成10,再用mod 2,所以才想問問
有沒有什麼比較好的方法,


jon

unread,
May 28, 2003, 11:47:29 PM5/28/03
to
※ 引述《co...@hifly.to (coco)》之銘言:
: "風閂" <zai...@pchome.com.tw> wrote in message news:<bb1nm1$nsn$1...@news.seed.net.tw>...

: > 或者是有什麼函數可利用的,thank
: > "風閂" <zai...@pchome.com.tw> 在郵件 news:bb1isc$m5b$1...@news.seed.net.tw
: > 撰寫...
: bitset<32> var(0xA9E7528FL);
: cout<<var.to_string()<<endl;
: 要這樣的功能,就算自己動手做一個也要不了五行程式碼

最後只要

cout << var << endl;

就可以了, 不用轉成 string.
另外使用 to_string() 要 specify template argument:

var.to_string<char, char_traits<char>, allocator<char> >();
--
[m※ Origin: 臺大電機 Maxwell 站 ◆ From: 61-222-173-66.HINET-IP.hinet.net

coco

unread,
May 29, 2003, 5:46:10 AM5/29/03
to
"?·??" <zai...@pchome.com.tw> wrote in message news:<bb2n4r$6mt$1...@news.seed.net.tw>...
> "coco" <co...@hifly.to> ?b?l¥?
> news:be37a37f.03052...@posting.google.com ?????g...
> > "?·??" <zai...@pchome.com.tw> wrote in message
> news:<bb1nm1$nsn$1...@news.seed.net.tw>...
> > > ?????O???°??????¥i§Q¥???,thank
> > >
> > >
> > > "?·??" <zai...@pchome.com.tw> ?b?l¥? news:bb1isc$m5b$1...@news.seed.net.tw
> ??
> > > ???g...
> > > > ±N?@???Q???i?? A9E7528F -> 10101001.......
> > > > ???o???????????....

> > > > thank..
> > > >
> > > >
> >
> > bitset<32> var(0xA9E7528FL);
> > cout<<var.to_string()<<endl;
> >
> > ?n?o????¥\??,?N?????v°???°??@???]?n?£?F?????{???X
>
>
>
> §????£???o???O?°???C... bitset<32> var(0xA9E7528FL);
> ???£???????@?U...
> ?]?°§?¥u???g?k?m?????k¥h°?,A?r??????10,?A¥?mod 2,??¥H?~·Q°?°?
> ???S???°???????n?????k,
§A?n°? VC++???S???G?i?????????A?o?N?O?F?C
bitset ?O?@??bits function ??????class?C
<32>?@¥N???@32 ???????????Avar(0xA9E7528FL)????var?O?????W???A0xA9E7528FL?Ovar
??°_?l???C
??¥????F??????§A???v¥h???@bitset ???????C
¥??p§?????§A?n??¥\???n?£?F?X???{???A?]?S¥??n¥h§??°???????F?A§????F?S?????£??
°Z?£??·??H
?????????s???G
void main(){
unsigned long i, b;
while (cin>>hex>>i){//???J?G?i???????A??CTR_Z??§??{??
for (b=1<<31; b; b>>=1) cout<<(i&b?1:0);
cout<<endl;
}
}

?o°÷?????F§a?H
?u¥??????G?i??¥u???@?????w?G
for (b=1<<31; b; b>>=1) cout<<(i&b?1:0);

coco

unread,
May 29, 2003, 8:35:41 AM5/29/03
to
fre...@bbs.ee.ntu.edu.tw (jon) wrote in message news:<46S7KI$_v...@bbs.ee.ntu.edu.tw>...

> ※ 引述《co...@hifly.to (coco)》之銘言:
> : "風閂" <zai...@pchome.com.tw> wrote in message news:<bb1nm1$nsn$1...@news.seed.net.tw>...
> : > 或者是有什麼函數可利用的,thank
> : > "風閂" <zai...@pchome.com.tw> 在郵件 news:bb1isc$m5b$1...@news.seed.net.tw
> : > 撰寫...
> : bitset<32> var(0xA9E7528FL);
> : cout<<var.to_string()<<endl;
> : 要這樣的功能,就算自己動手做一個也要不了五行程式碼
>
> 最後只要
>
> cout << var << endl;
>
> 就可以了, 不用轉成 string.
嗯!習慣會把它轉成字串放到 string 變數,所以自然的就 to_string 了 ^^


> 另外使用 to_string() 要 specify template argument:
> var.to_string<char, char_traits<char>, allocator<char> >();

並不是所有的編譯器都有 template member function。

coco

unread,
May 29, 2003, 10:53:18 AM5/29/03
to
fre...@bbs.ee.ntu.edu.tw (jon) wrote in message news:<46S7KI$_v...@bbs.ee.ntu.edu.tw>...
> ※ 引述《co...@hifly.to (coco)》之銘言:
> : "風閂" <zai...@pchome.com.tw> wrote in message news:<bb1nm1$nsn$1...@news.seed.net.tw>...
> : > 或者是有什麼函數可利用的,thank
> : > "風閂" <zai...@pchome.com.tw> 在郵件 news:bb1isc$m5b$1...@news.seed.net.tw
> : > 撰寫...
> : bitset<32> var(0xA9E7528FL);
> : cout<<var.to_string()<<endl;
> : 要這樣的功能,就算自己動手做一個也要不了五行程式碼
>
> 最後只要
>
> cout << var << endl;
>
> 就可以了, 不用轉成 string.
嗯!習慣用 to_string() assign 到 string variable自然就用了 ^^

> 另外使用 to_string() 要 specify template argument:
>
> var.to_string<char, char_traits<char>, allocator<char> >();

不是所有的編譯器都支援 template member function

coco

unread,
May 31, 2003, 4:28:14 AM5/31/03
to
"風閂" <zai...@pchome.com.tw> wrote in message news:<bb2n4r$6mt$1...@news.seed.net.tw>...
因為你要求C++的bit function 所以就給你 bitset
如果你看不懂 template class 的使用,如前所說,自制一個用不到幾行程式:

void main(){
unsigned long i, b;
while (cin>>hex>>i){//輸入hex data(如 3AF9,按下ctrl-Z會結束程式
for (b=1<<31; b; b>>=1) cout<<(i&b?1:0);//真正轉二進位,就這一行而已
cout<<endl;
}
}

enter the matrix

unread,
May 31, 2003, 11:46:57 AM5/31/03
to
※ "co...@hifly.to" (coco) wrote :

> void main(){
> unsigned long i, b;
> while (cin>>hex>>i){//輸入hex data(如 3AF9,按下ctrl-Z會結束程式
> for (b=1<<31; b; b>>=1) cout<<(i&b?1:0);//真正轉二進位,就這一行而已
^^^^^^^^請問一下這段是什麼意思?
> cout<<endl;
> }
> }

--
[1;37;40m( [1;31;40m. [1;32;40m⊙ [1;33;40m﹏ [1;32;40m⊙ [1;31;40m. [1;37;40m) [1;36;40my [m

--
[1;33m# [36m Origin [33m# [0;41m Moon Night-Star BBS [31;47m bbs.c-co.net [m
[1;33m# [35m Author [33m# [32m192.168.172.254 [m

等我學會愛...

unread,
May 31, 2003, 1:43:14 PM5/31/03
to
※ 引述《mish...@bbs.c-co.net (enter the matrix)》之銘言:
: ※ "co...@hifly.to" (coco) wrote :

: > void main(){
: > unsigned long i, b;
: > while (cin>>hex>>i){//輸入hex data(如 3AF9,按下ctrl-Z會結束程式
: > for (b=1<<31; b; b>>=1) cout<<(i&b?1:0);//真正轉二進位,就這一行而已
: ^^^^^^^^請問一下這段是什麼意思?

拆開來寫就等於...

if( i&b )
cout << 1;
else
cout << 0;


--
[1m╭──── [31mO [32mr [33mi [34mg [35mi [36mn [m: [1;36m<不良牛牧場> [33m bbs.badcow.com.tw [32m(210.200.247.200) [37m─────╮ [m

[1m│ [5;33m ↘ [;1;32;40mWelcome to SimFarm BBS [37m-- [31mFrom : [ [37m210.68.128.44 [31m] [37;40m │ [m

0 new messages