顯示如何在C中寫入一個常量,其十進制值爲65,如將十進制轉換爲十六進制和十六進制
a。一個十六進制常數
65/16 = 1 r1
1/16 = 0 r1
Hexadecimal constant = 11
b。一個八進制常量(以C表示)
65/8 = 8 r1
8/8 = 1 r0
1/8 = 0 r1 Octal constant = 101
這是在C中轉換常量的正確方法嗎?
顯示如何在C中寫入一個常量,其十進制值爲65,如將十進制轉換爲十六進制和十六進制
a。一個十六進制常數
65/16 = 1 r1
1/16 = 0 r1
Hexadecimal constant = 11
b。一個八進制常量(以C表示)
65/8 = 8 r1
8/8 = 1 r0
1/8 = 0 r1 Octal constant = 101
這是在C中轉換常量的正確方法嗎?
你只需要一個while循環和一個字符串。由於這是作業,我認爲我不應該多說這些。
該方法是除以基數,直到結果小於基數。
所以65/8給人8個R1,但因爲結果是8 不低於8
您可以通過8又分爲並獲得1
應該
你不要停在那裏64分之65= 10,R 1,其中64 = 8×8 = 10進制
我不認爲我說的太多
謝謝,我以爲這就是我最初在我的問題中所做的事情?從這張表中可以看出,65位小數是101八進制數:http://www.ascii.cl/conversion.htm – raphnguyen 2011-05-09 04:13:54
是的,如果我補充說它會給你一個作業問題的答案,還有一些SO用戶認爲即使您的困惑是真實的,也應該投下贊成票。 *順便說一下*不要忘記投票並接受你認爲最有用的答案 – pavium 2011-05-09 06:46:40
也許我誤解了這些問題,但是好像你被問到在C中如何表示十六進制和八進制常量,而不是如何實現將十進制轉換爲十六進制和十進制的算法。
如果是這樣的情況下:
十六進制數由一個前述0x或0X
辛數表示由前述0
int hex = 0x41;
int oct = 0101;
當然表示,可以驗證這通過打印我們的十進制值:
printf("%d\n", hex);
printf("%d\n", oct);
65/16 = 4 r1,因此(最終)65十進制= 41十六進制。檢查你的卡路里也是65/8。這不像簡單的算術那麼簡單。你可能不需要在'C'中轉換常量,你只需要以不同的方式顯示它們 - 一個*重要的*區別。 – pavium 2011-05-09 03:49:16
也許我有點困惑。我們是否應該計算餘數或在尋找十六進制常數時16進入65的次數?如果它是前者,那麼八進制常數是'65/8 = 8 r1'還是'8/8 = 1 r0' ='80'?我想我很困惑到哪裏停下來。 – raphnguyen 2011-05-09 03:55:26
你需要跟蹤兩者:16次分成64次,剩餘次數是多少?十進制65到八進制的問題應該更具啓發性。 – pavium 2011-05-09 04:03:19