線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2674
推到 Plurk!
推到 Facebook!

多個byte 合併 轉 int

答題得分者是:暗黑破壞神
sincoew
一般會員


發表:7
回覆:10
積分:3
註冊:2008-02-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-22 20:16:11 IP:61.216.xxx.xxx 訂閱
請問各位前輩

比如說能讀取1 byte=11111111= 255 (10進位)
那麼我今天有兩個byte 都是 255,
我想把他轉成 65535
也就是 1111111111111111=65535(10進位)
我該怎麼做呢?(我想我需要的是演算法)

簡化問題:
我拿到兩個255
255 255

我要寫 65535
到文件裡面

我該怎麼知道兩個255 = 65535?

ps.只能用10進位算,因為我是用VC的 array^ temp;
temp[0]=255;
temp[1]=255;

我想把他們合併成65535

謝謝~!!
若有發問表達不清的地方請見諒!!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-22 21:03:37 IP:125.227.xxx.xxx 未訂閱
let int a = byte1
let a shift left 8;
a or byte2
這樣就是了.
sincoew
一般會員


發表:7
回覆:10
積分:3
註冊:2008-02-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-22 23:39:20 IP:61.216.xxx.xxx 訂閱
感謝暗黑前輩!!
array^ a;
int x;
x=a[0]<<8;
x=x | a[1];

應該是這個意思吧@@

不過又有問題了...我解不回去
我之前試驗的時候是用
bin->write(x);
可是write() 裡面好像只能寫入一個位元組

還在測試中~~~~~
不知道問題在哪
所以晚點在結案~

多謝案黑前輩了~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-23 10:50:38 IP:125.227.xxx.xxx 未訂閱
or you can use "union"  to do your job.
http://caterpillar.onlyfun.net/Gossip/CppGossip/Union.html
sincoew
一般會員


發表:7
回覆:10
積分:3
註冊:2008-02-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-03-25 13:51:37 IP:118.169.xxx.xxx 訂閱
Thx 暗黑前輩!!

我的問題解決了!!!
我用 | 和 & 還有 << 、 >>
解決了!!

我後來想起來這方法以前有看過,不小心忘了@@!!!

感謝暗黑前輩提醒
哈哈 寫出來真開心
系統時間:2017-10-18 6:29:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!