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

關於字元運算

尚未結案
TIY~2
一般會員


發表:26
回覆:37
積分:22
註冊:2003-08-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-28 22:05:23 IP:218.162.xxx.xxx 未訂閱
因為我要用到字元運算來解密 把一個數字轉換成BYTE形式 EX: 65 類似 0110 0101 然後掉換順序 1456 2378 結果變成 1001 1100 然後在轉換成數字 最後變成 SOL:8C 我該怎麼實作~~花了兩天的時間還是試不出來 有問過好像用 & 和 << >>左移右移的方法 但就是弄不出來 找也沒找到範例 拜託各位大大指點一下~~若有範例感激不近.
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-28 23:22:57 IP:140.135.xxx.xxx 未訂閱
TIY~2您好: 您的題目怪怪的,65的二進位不是0110 0101而是0100 0001吧 > <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-28 23:51:19 IP:61.221.xxx.xxx 未訂閱
引言: 因為我要用到字元運算來解密 把一個數字轉換成BYTE形式 EX: 65 類似 0110 0101 然後掉換順序 1456 2378 結果變成 1001 1100 然後在轉換成數字 最後變成 SOL:8C 我該怎麼實作~~花了兩天的時間還是試不出來 有問過好像用 & 和 << >>左移右移的方法 但就是弄不出來 找也沒找到範例 拜託各位大大指點一下~~若有範例感激不近.
TIY~2 你好: 小弟我的答案是 0x96 喔,建議你再重算一次 < class="code"> // 7, 6, 5, 4, 3, 2, 1, 0 to 0, 3, 4, 5, 1, 2, 6, 7 BYTE bSrc=0x65; BYTE bDst=0x00; BYTE bTmp=0x00; bTmp=0x01 & bSrc; bDst|=(bTmp << 7); bTmp=0x08 & bSrc; bDst|=(bTmp << 3); bTmp=0x10 & bSrc; bDst|=(bTmp << 1); bTmp=0x20 & bSrc; bDst|=(bTmp >> 1); bTmp=0x02 & bSrc; bDst|=(bTmp << 2); bTmp=0x04 & bSrc; bDst|=(bTmp << 0); bTmp=0x40 & bSrc; bDst|=(bTmp >> 5); bTmp=0x80 & bSrc; bDst|=(bTmp >> 7); ShowMessage(IntToHex(bDst, 2)); -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/11/28 23:57:55
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-29 03:30:13 IP:61.221.xxx.xxx 未訂閱
無聊寫個較麻煩且慢速的例子~ 因為是用字串處理,所以原本的87654321 會變成 12345678 結果跟RaynorPao 版主是一樣的  
#include 
#include 
        int out,In = ("0x"   Edit1->Text).ToInt();
        char* temp="";
        String temp2;
        temp2 = itoa(In, temp, 2) ;      //轉成二進制
        temp2 = temp2.StringOfChar('0',8-temp2.Length())   temp2; //不足8bit時補0
        Edit2->Text = temp2;
        //計算位移後的數值
        out = (temp2.SubString(8,1).ToInt() * 128)  
              (temp2.SubString(5,1).ToInt() * 64)  
              (temp2.SubString(4,1).ToInt() * 32)  
              (temp2.SubString(3,1).ToInt() * 16)  
              (temp2.SubString(7,1).ToInt() * 8)  
              (temp2.SubString(6,1).ToInt() * 4)  
              (temp2.SubString(2,1).ToInt() * 2)  
              (temp2.SubString(1,1).ToInt());            Edit3->Text = itoa(out,temp,2); //轉成二進制
        Edit4->Text = itoa(out,temp,16);//轉成十六進制
 
PS: 二進制是由右向左算呦 學習中請大家多多指導呦~~ ☆星霧☆(Mineg Chien WU)
TIY~2
一般會員


發表:26
回覆:37
積分:22
註冊:2003-08-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-29 03:40:33 IP:218.162.xxx.xxx 未訂閱
謝謝RaynorPao大哥 這就是我要的~~本來還想問你程式碼內容的,結果自己熬夜研究出來了 研究出你的程式碼的用意~謝謝 而Taishyang,實在很抱歉~~問題沒有問的很清楚! 因為我自己也不是很了解 所以我自己也是盡量寫清楚~~下次我會加強的 也謝謝你
uesugi46
一般會員


發表:7
回覆:14
積分:4
註冊:2003-09-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-04 09:30:48 IP:61.221.xxx.xxx 未訂閱
小弟粉嫩..想請問各位大大... // 7, 6, 5, 4, 3, 2, 1, 0 to 0, 3, 4, 5, 1, 2, 6, 7 BYTE bSrc=0x65; BYTE bDst=0x00; BYTE bTmp=0x00; bTmp=0x01 & bSrc; bDst|=(bTmp << 7); bTmp=0x08 & bSrc; bDst|=(bTmp << 3); bTmp=0x10 & bSrc; bDst|=(bTmp << 1); bTmp=0x20 & bSrc; bDst|=(bTmp >> 1); bTmp=0x02 & bSrc; bDst|=(bTmp << 2); bTmp=0x04 & bSrc; bDst|=(bTmp << 0); bTmp=0x40 & bSrc; bDst|=(bTmp >> 5); bTmp=0x80 & bSrc; bDst|=(bTmp >> 7); ShowMessage(IntToHex(bDst, 2)); &運算子不是在取址,上面那個&代表甚麼意思..? |=這是甚麼意思..? 麻煩各位大大回答一下..Thanks
taishyang
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-04 13:26:14 IP:140.135.xxx.xxx 未訂閱
引言:&運算子不是在取址,上面那個&代表甚麼意思..?
抱歉講的不夠嚴謹 &做 > &&做>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
Albertz
初階會員


發表:2
回覆:57
積分:31
註冊:2002-09-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-04 13:36:37 IP:211.20.xxx.xxx 未訂閱
引言:做AND邏輯運算
嗯........ &是bitwise 運算 &&是logical 運算
uesugi46
一般會員


發表:7
回覆:14
積分:4
註冊:2003-09-03

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-04 13:55:16 IP:61.221.xxx.xxx 未訂閱
| =>這是甚麼意思..?
taishyang
站務副站長


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-04 14:08:49 IP:140.135.xxx.xxx 未訂閱
舉一反三囉 | 做OR位元運算
uesugi46
一般會員


發表:7
回覆:14
積分:4
註冊:2003-09-03

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-04 14:31:03 IP:61.221.xxx.xxx 未訂閱
我懂了.. 謝謝taishyang大大..!
系統時間:2024-05-18 16:13:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!