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...