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

到底要如何轉換10進位到二進位

尚未結案
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-03 10:04:16 IP:61.228.xxx.xxx 未訂閱
撰寫一個程式,讓使用者輸入一個字元,然後程式輸出和該字元ASCII碼位元順序相反的字元........'J' -> 74(10進) -> 01001010(2進) ->位元順序相反 : 01010010(2進) -> 82(10進) -> 'R' 輸出 [條件] 不使用迴圈,只使用基本運算
暗黑破壞神
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-03 10:58:48 IP:221.169.xxx.xxx 未訂閱
學校作業請自行想辦法。 http://www.mcu51.com/list.asp?id=1588 想想別人怎麼學,我們有這麼用心嗎? 憂心啊~~~~~~
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-03 13:22:27 IP:211.20.xxx.xxx 未訂閱
自助而後人助 你是否先說一下你做了那些努力,遇到什麼困難 我們才好幫你 你先想一下有什麼方法可以做,你卡在那一個地方 那麼大家會很樂意幫助你的 若只是想找一個答案,而不是想學習解決問題,我想我是不會幫你做作業的
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-03 15:17:57 IP:61.228.xxx.xxx 未訂閱
真是抱歉呀....因為是第一次丟問題.自以為要詳細寫出問題.....但好像不是這樣......果然是要自助
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-03 17:23:47 IP:211.20.xxx.xxx 未訂閱
中間一定要用10進位嗎,何不改用16進位 因為16進位要分解為2進位容易多了 ASCII變16進位也容易
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-04 10:52:56 IP:61.228.xxx.xxx 未訂閱
引言: #include #include int main(void) { char wo0; int i=wo; cout <<"請輸入任何英文單字 :"<< endl; cin >>wo ; cout <<"The ASCII Code Is :"; cout << setbase(10) << i << endl; system("pause"); return 0; } 這是我這個初學者寫的... 那你的意思是說要我多做幾個步驟是嗎? ASCLL-16進位-10進位-2進位
stellos
中階會員


發表:24
回覆:84
積分:51
註冊:2004-06-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-04 13:22:03 IP:61.60.xxx.xxx 未訂閱
char string[25]; int i=1000; itoa(i,string,2); //2=二進制(隨你高興改幾進制) Label1->Caption=string;
chowleft
一般會員


發表:0
回覆:2
積分:0
註冊:2004-12-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-03-05 01:57:33 IP:140.118.xxx.xxx 未訂閱
To bubu0921    我覺得這個程式重點只是要你學習and和or怎麼運用而已= = 'J'雖然是char, 不過可以當成是10進位的short, 所以setbase(10)沒意義 只要取得位元相反的順序, 取得每一個位元的值再做移位即可    以下是範例    
#include 
using namespace std;    void main(){
        char que = 'J', ans = 0;            ans |= (que & 0x01) << 7;
        ans |= (que & 0x02) << 5;
        ans |= (que & 0x04) << 3;
        ans |= (que & 0x08) << 1;
        ans |= (que & 0x10) >> 1;
        ans |= (que & 0x20) >> 3;
        ans |= (que & 0x40) >> 5;
        ans |= (que & 0x80) >> 7;            cout << ans << endl;
}
希望這樣有回答到您的問題
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-03-07 10:42:57 IP:61.228.xxx.xxx 未訂閱
謝謝各位的大力相助...雖然我不是很懂(我是C 幼幼班的)
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-03-07 12:54:12 IP:61.228.xxx.xxx 未訂閱
不好意思請問一下....為啥這樣打.就有這樣的結果    
引言: char string[25]; int i=1000; itoa(i,string,2); //2=二進制(隨你高興改幾進制) Label1->Caption=string;
smartboss
初階會員


發表:19
回覆:93
積分:42
註冊:2004-12-29

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-03-07 14:25:42 IP:211.76.xxx.xxx 未訂閱
引言: 不好意思請問一下....為啥這樣打.就有這樣的結果
引言: char string[25]; int i=1000; itoa(i,string,2); //2=二進制(隨你高興改幾進制) Label1->Caption=string;
itoa() func 故名思意,就是 int change to ascii ,而即然是 ascii 它是文字(字串)所以您的 string 就配足夠的空間來存放這個字串,就是char string[25]; 這個動作,itoa(i,string,2); 而這一段碼最後的那個數字2,就是依您要將數字轉成什麼進位的字串做需求而改變的,如果您想轉成8進位,就寫成itoa(i,string,8); 要轉成16 就寫成 itoa(i,string,16);這是一個滿方便的程式,您可以記下來以後多加應用。 蝦程速,有了 K.TOP 尊好。
bubu0921
一般會員


發表:1
回覆:5
積分:1
註冊:2005-03-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-03-07 16:57:25 IP:61.228.xxx.xxx 未訂閱
所以char string[25]裡面的數字是可以依照自己的需求改變的嗎? 那i=1000也是可以改的嗎? 意思一直麻煩你......謝謝 [/quote] itoa() func 故名思意,就是 int change to ascii ,而即然是 ascii 它是文字(字串)所以您的 string 就配足夠的空間來存放這個字串,就是char string[25]; 這個動作,itoa(i,string,2); 而這一段碼最後的那個數字2,就是依您要將數字轉成什麼進位的字串做需求而改變的,如果您想轉成8進位,就寫成itoa(i,string,8); 要轉成16 就寫成 itoa(i,string,16);這是一個滿方便的程式,您可以記下來以後多加應用。 蝦程速,有了 K.TOP 尊好。 [/quote]
smartboss
初階會員


發表:19
回覆:93
積分:42
註冊:2004-12-29

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-03-07 17:14:33 IP:211.76.xxx.xxx 未訂閱
引言: 所以char string[25]裡面的數字是可以依照自己的需求改變的嗎? 那i=1000也是可以改的嗎? 意思一直麻煩你......謝謝
我猜您八九不離十是個學生,而且不是很認真的學生,這些東西是很平常很基礎的東西,就好像您吃飯該用什麼工具,要用什麼姿勢一樣,是您入這一行就該要董的事,您若會問以上的問題,顯然您連一本基本的c/c 的書您都沒有去看過,就把學校的作業 po 到上面來請人家解答,式問您一個問題,今天您上來這裡問了這個問題,您的目地是為何? 1、為了交老師、學校的作業嗎?? 2、為了深根,讓以後更董得如何寫程式嗎?? 以上兩個問題的答案,您都不應該在這裡發問,如果您的目地是1,那您己經達成了,快把作業交一交吧其它的不用了解太多,如果您的目地是2,那您應該是要書局買一本基本的c/c 回家看一看,再把不董的拿上來問,您上面問的問題我幾乎可以確定,您連「為何而寫這程式,為誰而寫這支程式」的基本觀念都沒有,我真不知如何回答起,如果您想知道您上面所發問的問題,去買一本書隨便一本只要是c的他就會教您,要加油,我們不一定跑的贏人家,但起碼盡力去跑。 蝦程速,有了 K.TOP 尊好。
stellos
中階會員


發表:24
回覆:84
積分:51
註冊:2004-06-08

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-03-08 01:31:42 IP:220.138.xxx.xxx 未訂閱
不好意思讓你費解了 你可以這樣寫 char string[25]; int i='J'; //i=1000;是舉例 itoa(i,string,2); //2=二進制(隨你高興改幾進制) //string就將J-> 1001010(2進) Label1->Caption=string; //是為了顯示在Label1上 而位元順序相反我只會用迴圈做,而你限制不使用迴圈
tomex.ou
一般會員


發表:8
回覆:54
積分:22
註冊:2005-05-05

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-06-19 15:10:20 IP:163.28.xxx.xxx 未訂閱
引言: 所以char string[25]裡面的數字是可以依照自己的需求改變的嗎? 那i=1000也是可以改的嗎? 意思一直麻煩你......謝謝
前陣子我也為這個buffer陣列的長度而感到不明 原來它是處理轉換過程及儲放結果所需要空間 但要多長呢? 一般是11... 因為int的最大值是20億,unsigned int是40億 字串長度是10,但要加上\0這個,因此是11。 宣告過長或過少,心裏都是怪怪的,compiler也不會原諒你 但了解之後就安心許多。
------
A fan of C#.NET
系統時間:2024-06-27 3:21:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!