C語言十進位轉二進位出現問題怎麼解?

時間 2025-01-19 10:20:27

1樓:上海長英

糾正後的**如下:

#include

int main(void)

int n,a[10],i=0;

printf("輸入十進位數:")

scanf("%d",&n);

printf("八進位為:%o",n);

printf("十六進位為:%x",n);

while(n!=0)

a[i]=n%2;

n=n/2;

i++;printf("二進位為:")

i--;for( ;i>=0;i--)

printf("%d",a[i]);

printf("");

return 0;

=更簡潔一點===

#include

int main(void)

int n,a[10],i=0;

printf("輸入十進位數:")

scanf("%d",&n);

printf("八進位為:%o",n);

printf("十六進位為:%x",n);

while(n!=0)

a[i++]n%2;

n=n/2;

printf("二進位為:")

for( ;i>0;)

printf("%d",a[--i]);

printf("");

return 0;

請測試一下,看看是否是你需要的結果,歡迎繼續提問。

2樓:哥德堡快遞

可以考慮優化一下**。

#include

int main()

char a[33] =考慮int為32位的情況。

int n, p = 32;

printf("輸入十進位數:")

scanf("%d", n);

printf("八進位為:%o", n);

printf("十六進位為:%x", n);

do {a[--p] =n & 1 ? 1' :0';

n >>1;

while (n);

printf("二進位為:%s", a + p);

return 0;

3樓:慕森利

順便給你完善了一下。

#include

int main()

int n,a[10],i=0;

printf("輸入十進位數:");

scanf("%d",&n);

printf("八進位為:%o",n);

printf("十六進位為:%x",n);

if(n==0)

while(n!=0)

a[i++]n%2;

n=n/2;

printf("二進位為:")

for(i-=1;i>=0;i--)

printf("%d",a[i]);

printf("");

return 0;

八進位轉換二進位有0怎麼辦

4樓:

摘要。您好 很高興您的問題 我的如下八進位轉換二進位的時候,如果有0,可以用0補位,即以3位二進位表示每一位八進位數,具體步驟如下:1.

把八進位數按位分解,每一位八進位數作為一位二進位位(小於3位);2. 如果八進位數中有0,則把這一位二進位位補足3位,即用0補足;3. 把八進位數的每一位二進位位合併成乙個整體,即得到八進位數的二進位表示形式。

希望我的對您有所幫助

您好 很高興您的問題 我的如下八進位轉換二進逗皮製的時候,如果有0,可以用0補位,即以3位二進位表示每一位八進位數,具體步驟如下:1. 把八進位數按位分解,每一位八進位數作為一位二進位位(小於3位);2.

如果八進位數中有0,則把這一位二棗凳進位位補足3位,即用0補足;3. 把八進位數的每一位二進位位合併成乙個整體,即得到八進位數的二進位凳指旅表示形式。 希望我的對您有所幫助

您能補充下嗎,我有點不太理解。

如果八進位的數字中有0,則需要在轉換成二進位時,將0替換為「000」。例乎缺如:八進位數歲鄭辯字「010」需要轉換成二進位,則可以將其轉換為「00001000」叢握。希望能幫到您

請教高手:二進位轉化為十六進位的問題

5樓:

整數部分:76%2=0 (76/2=38)

19%2=1 (19/2=9)取整運算。

1%2=1 逆向取數1001100

小數部分:上式的小數部分)

正向取整數部分。

得到二進位:

轉換為十六進位:(0100)(1100).(1010)

4 c . a

結論:你的題目錯了,應該是十進位轉化為十六進位,答案選d。

註釋:除法運算/: 整數除法結果的小數部分都被丟棄,這個過程被稱為截尾(truncation)。

取模運算%: 取模運算子計算出用它右邊的整數去除它左邊的整數得到的餘數。)

對於你的補充問題:

累加和裡面涉及的指數運算只有在十進位裡才有,二進位甚至是十六進位的浮點運算中是不會涉及的指數運算的。so,你一旦用了加入指數運算的累加和就一定得出的是十進位數。

這個其實要追溯到機器碼的起源,十六進位本來就是由二進位衍生而來,他們的運算是受到機器嚴格限制的。機器裡的運算由簡單的邏輯閘組成,不可能單次實現複雜的運算。

記住,十六進位就是二進位的擴充形勢罷了,不要把十六進位和十進位相提並論。

很久沒碰這些東西了,只剩些模糊的印象,如有錯誤敬請見諒。勉強看看吧\(^o^)/

c++中十進位和二進位的轉換問題

6樓:網友

負數是按照二進位補碼的形式儲存的。

補碼的把法就是絕對值對應的二進位碼取反加一。

24的二進位碼是 0001 1000

取反是 1110 0111

加一 1110 1000 代表-24

那麼 24 + 24) 剛好就是 0000 0000, 如果到按無符號數來說和是256

這樣的好處是正負數加加減法和無符號數的加減法規律一樣。

計算機在儲存資料的時候是不分什麼型別的。

例如計算有符號數 24 + 24) 和無符號數 24 + 232時。

計算機cpu裡面都是操作二進位的 0001 1000 + 1110 1000

8位結果顯然都是 0000 0000

程式是人為地認為。

在做符號數運算的時候是正負抵消結果為0,在做無符號數時是計算溢位。

7樓:沁水依依

int型別佔4個位元組,所以-104在記憶體實際表示為:11111111 11111111 11111111 10011000

char佔乙個位元組,所以前面3個位元組丟失,只接收到 10011000乙個負數轉成二進位是求它的補碼:求得它對應正數的二進位,按位取反再加1

要從乙個二進位求對應的整數,一般會告訴你這是正數還是負數吧最後乙個問題,你存放乙個數,不是第一件事就是定義它的型別嗎,當然是根據你定義的型別來判斷第一位是否是符號位。

8樓:禮翼跆拳道

計算機 十進位和二進位的轉換。

二進位、八進位、十進位、十六進位之間轉換問題

9樓:網友

這個都有公式的,或者有**對應的,你可以隨便找本和這個相關的書,或者例如。

很簡單的。

2進位到進位16進位問題

10樓:風林火陰山雷

您好~很高興為您解答。

例題1-10】二進位數可以表示為__④將其轉換成八進位數為__①將其轉換成十六進位數為__④

供選擇的答案。

a:① 25+2–5 ② 24+2–4 ③ 25+2–4 ④ 24+2–5

b:① c:①

例題1-11】對於不同數制之間關係的描述,正確的描述為__③

供選擇的答案。

a:①任意的二進位有限小數,必定也是十進位有限小數。

任意的八進位有限小數,未必也是二進位有限小數。

任意的十六進位有限小數,不一定是十進位有限小數。

任意的十進位有限小數,必然也是八進位有限小數。

例題1-12】二進位整數1111111111轉換為十進位數為__②二進位小數轉換成十進位數為__③

供選擇的答案。

a:① 1021 ② 1023 ③ 1024 ④ 1027

b:① 例題1-13】十進位的相當十六進位的__④十六進位的相當十進位的__③將二進位的表示為十六進位為__④將十六進位的表示為二進位為__④

供選擇的答案。

a:① b:①

c:① d:① 28+2–8 ② 28+2–9 ③ 28+2–10 ④ 28+2–12

例題1-14】多項式212+28+21+20表示為十六進位為__④表示為十進位為__③

供選擇的答案。

a:① 163+162+16–1 ② 163+162+3/1 ③ 163+162+16④ 163+162+3

b:① 4353 ② 4354 ③ 4355 ④ 4356

例題1-15】已知a=,b=,c=,d=,e=,f=,若使a=c,則a為__①c為__②若使d=f,則d為__③f為__④若使b=e,則b為__⑤e為__⑥

供選擇的答案。

a、b、c、d、e、f:

二進位數 ②八進位數 ③十進位數。

十六進位數 ⑤六進位數 ⑥十二進位數。

c語言,二進位,八進位,十六進位的問題

11樓:萊靈慶司

長度為1個位元組的二進位的整數,若採用補碼錶示,且由4個「1」和4個「0」組成,則可表示的最小整數為___

a.-127

b.-121

c.-15d.-7

答蔽閉歷:搞不清,就挨個算算:

127的補碼是:1000

121的補碼是:1000

15的補碼是:1111

7的補碼是:1111

只有-121的補碼是由4個「1」和4個「0」組成,答案選。

b.-121。

在計算機態談科學中,常常會遇到用二進位、八進位、十六進位等表示的資料。對於算術表示式1023-377q+100h,其運算結果是___

答:q是8進位的標記,h是16進位的標記。

1023-377q+100h,換算成十進位,就是:

答案應選。。巨集搜。

c語言十進位制轉二進位制,C語言十進位制轉二進位制

何老師 答疑 十進位制轉二進位制可以使用庫函式itoa。itoa函式原型 char itoa int value,char string,int radix 功能 將任意型別的數字轉換為字串。在中與之有相反功能的函式是atoi。nt value 被轉換的整數,char string 轉換後儲存的字元...

十進位制轉二進位制演算法,二進位制轉十進位制,十進位制轉二進位制的演算法 求助

向前看 如果要將十進位制數轉換為二進位制數,則應將十進位制數的整數部分和小數部分分別轉換為二進位制數,然後將這兩部分的二進位制數合併得到完整的二進位制數。首先,通過短除法,十進位制數可以除以2得到多個餘數。最後,將餘數從下到上進行排列組合,得到二進位制數。然後將小數部分乘以2,取每一步的整數部分,從...

二進位制十進位制轉換公式,二進位制轉十進位制公式

比如10進位制的15轉換2進位制 用15除以2,商為7,餘數為1,再用7除以2,商為3,餘數為1,再用3除以2,商為1,餘數為1,再用1除以2,商為0,餘數為1,最後吧餘數倒過來排列就為二進位制的1111 即商為0時的1,商為1時的1,商為3時的1,商為7時的1 二進位制轉十進位制。以二進位制的11...