1樓:匿名使用者
大數轉換成小數進位制時主要是求餘演算法,小數進位制轉換成大數進位制時要用n次方演算法。求餘後把數字儲存起來輸出就可以了。
2樓:孤舟釣客
16進位制:
0:0000
1: 0001
2;0010
3:0011
4; 0100
5: 0101
6: 0110
7: 0111
8:1000
9:1001
a:1010
b:1011
c:1100
d:1101
e:1110
f:1111
故(b5)16 -> 1011 01018進位制就是從右往左,每三個二進位制位組成一個,即 10 110 101
10 110 101 -> (2 6 5)8
3樓:
你是說人肉計算,不是程式?
一般十六進位制的十六個數對應的二進位制,有個表,0x0,->0000, 0x1<->0001....0xf<->1111,有這個表之後剩下的就是體力活了
4樓:
對應表二進位制 八進位制 十六進位制
000 0 0
001 1 1
010 2 2
011 3 3
100 4 4
101 5 5
110 6 6
111 7 7
1000 8
1001 9
1010 a
1011 b
1100 c
1101 d
1110 e
1111 f
c語言中各進位制的轉換問題
5樓:匿名使用者
0x字首表示16進位制 0x10=16
0表示8進位制 010=8
沒有表示10進位制
6樓:匿名使用者
用一個函式搞定
任意進位制間的轉換
#include
#include
#include
/*該函式可以實現小於整型資料的任意進位制之間轉換*//*以下函式將a進位制數s轉換成b進位制並輸出*/void f(int a,int b,char s)for(i=0;t!=0;i++) /*再轉換成b進位制*/r[i]='\0';
s=strrev(r);
printf("%s",s);
7樓:
說點簡單的
在立即數裡面:
0x字首表示16進位制
0o表示8進位制
沒有表示10進位制
8樓:匿名使用者
問的不是很具體
如果是輸出的話在「%+字母」那裡控制
c語言中進位制數的轉化問題。
9樓:文藝小年青
十進位制是大家最熟悉的,生活中用的最多的,逢十進一。
而像二進位制,八進位制,十六進位制大致和它相似。
二進位制便是逢二進一,八進位制是逢八進一,十六進位制便是十六進一。
表示方法:
2進位制,用兩個阿拉伯數字:0、1;
8進位制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進位制,用十個阿拉伯數字:0到9;
16進位制,用十個阿拉伯數字:0到9,再加a到f;
我個人覺得對初學者來說把別的進位制轉換為十進位制,再用求餘數的方法最簡單。。。
十進位制整理轉換成二進位制 將十進位制整數轉換成二進位制整數採用「除2取倒餘法」。 即將十進位制整數除以2,得到一個商和一個餘數;再將商除以2,又得到一個商和一個餘數; 以此類推,直到商等於零為止。 每次得到的餘數的倒排列,就是對應二進位制數的各位數。
其實都可以這樣算。。。
自己理解,望採納!不懂再問,我覺得你應該問點具體的。。。
10樓:匿名使用者
以十進位制數25為例子
1:變為2進位制用十短除2
25除2 商12餘1,
12除2 商6餘0,
6除2 商3餘0,
3除2 商1餘1,
1除2 商0餘1,
從下往上看餘數 便是2進株書即 十進位制25=11001,根據所得2進位制數取3位一組 即11,001不夠3位最左邊補0便是8進位制數 即11,001=31 即便是8進位制的31,
還是根據所得2進位制數分4為一組即1,1001 不夠4位最左邊補0即 0001,1001便是16進株數19 也就是十進位制數25d=11001b,25=31o,25=19x
當然反過來你應該會了把
11樓:愛慕抗命
十進位制,化為其他進位制,比如 13華為二進位制,13除以2,6餘1;6除以2,3餘0;3除以2;1餘1;所以就是把餘數倒著寫;1101(最後是1餘1,所以都要寫)。其他一樣,二進位制化十六進位制,可以先化成十進位制,或者比如:101010,從右向左四位看,因為2的四次方是16,所以,後四位1010是10,所以是a,10是2;所以是2a。
c語言程式設計 進位制轉換問題,請給出說明,謝謝。
12樓:匿名使用者
#include
int main()
//先判斷+-
while(a>=b)
//根據10進位制換成2進位制的方法可類推出10-b進位制的方法c[i]=a+'0';
for(j=i;j>=1;j--)
printf("\n");}}
13樓:篤俠
#include
#include
#define l 100
int main()
f=n>=0 ? 1 : -1;
n=abs(n);
i=0;
while(n && i=10 ? t+55 : t+48);
a[i++]=t;
}if(f==-1)
printf("-");
for(j=i-1; j>=0; j--)printf("%c",a[j]);
printf("\n");
}return 0;}
c語言進位制轉換
14樓:fu我若為王
計算機中常用的數的進位制主要有:二進位制、八進位制、十進位制、十六進位制。
2進位制,用兩個阿拉伯數字:0、1;
8進位制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進位制,用十個阿拉伯數字:0到9;
16進位制就是逢16進1,但我們只有0~9這十個數字,所以我們用a,b,c,d,e,f這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
下面用餘數短除法把十進位制數轉化為二進位制數為例進行說明
1、明確問題。舉個例子,我們現在是要將一個十進位制數字156轉換成二進位制數字。先將這個十進位制數作為被除數寫在一個倒著的「長除法」的符號裡。
把目標數系的基數(在這裡二進位制是「2」)作為除數寫在這個除法符號的外面。用這個方法將計算過程視覺化會更方便理解,因為整個計算過程只需將數字一直除以2。
2、進行除法運算。把結果的整數部分(商數)寫在長除法符號的下面,然後把它的餘數(0 或 1)寫在被除數的右邊。
我們現在是以2為除數,因此得出的商為偶數,則餘數為0;如果得出商為奇數,則餘數記為1。
3、一直往下繼續除,直到商為0為止。把每一個新的商數除以二,然後把餘數寫在被除數的右邊。直到商數為0為止。
4、寫出新的二進位制數字。從最下面的餘數開始,按順序讀到最上面。本例中,你會得到10011100。
這就是十進位制數字156的二進位制形式。或者,我們可以以腳註等式的形式表達,即:15610 = 100111002
活用這個方法可以將所有十進位制數字轉換成任何進製表達。除數為2是因為我們最終想得到的以2為基數的數(即二進位制數值) 。如果最終想得到其他數系的數字,用目標數系的基數代替這個方法裡二進位制的基數2 就可以了。
例如,要得到基數為9的數,就用9來代替2作為除數 。最終的結果就是目標數系的數字表達。
15樓:大野瘦子
1、十進位制轉二進位制
方法:十進位制的數除以2,然後取餘數,直到最後的商為0為止,然後餘數從下到上取(這個就是二進位制的數)
2、二進位制轉十進位制
方法:把二進位制數按權、相加就是十進位制數。
3、十進位制轉八進位制(類似十進位制轉二進位制的方法)
方法:十進位制的數一直除以8,直到商為0,然後倒著取餘八進位制的數。
4、八進位制轉十進位制(類似二進位制轉十進位制的方法)
方法:把八進位制的數按權,相加就是十進位制數。
5、二進位制轉八進位制
方法1:二進位制 -> 十進位制 -> 八進位制
方法2:2的3次方是8,所以,二進位制可以從個位開始,切成3個3個為一組,最高位不夠3個就補0然後每一組數就代表八進位制的一個位數。
6、八進位制轉二進位制
方法1:八進位制 -> 十進位制 -> 二進位制
方法2:八進位制每一位數進行除2取餘,如果取出來的餘數不夠3個就在最高位補0。
要掌握整型的表現形式,如下:
十進位制: 都是以0-9這九個數字組成,不能以0開頭。
二進位制: 由0和1兩個數字組成。
八進位制: 由0-7數字組成,為了區分與其他進位制的數字區別,開頭都是以0開始。
十六進位制:由0-9和a-f組成。為了區分於其他數字的區別,開頭都是以ox開始。
16樓:匿名使用者
很簡單的,
以下是各種進位制
的轉換方法:
兩個進位制(其中之一為10進位制)之間的互轉(手工計算方法)以2,10進位制互轉為例,其他請舉一反三:
二進位制數1101轉十進位制:
1×2的三次冪+1×2的二次冪+0×2的一次冪+1×2的零次冪=8+4+0+1=13
附加一個八進位制轉十進位制的例子吧:
507(八進位制轉10進位制):
5×8的2次冪+0×8的1次冪+7×8的0次冪=5×64+0×8+7×1=327(10進位制)以上是小進位制向大進位制的轉換,從2->10和8->10,下面說說大進位制向小進位制的轉換。(方法是相除去餘)
10進位制327轉八進位制:
327/8 = 40 餘數為7
40/8 = 5 餘數為0
於是八進位制數為507(第一位5是最後的商)10進位制13轉2進位制:
13/2 = 6 餘數為1
6/2 = 3 餘數為0
3/2 = 1 餘數為1
所以對應的二進位制數為1101(第一位1是最後的商)再測試一下,把307(10進位制)轉換為16進位制:
307/16 = 19 餘數為3
19/16 = 1 餘數為3
對應的16進位制數應該是:133
再把133轉回10進位制:
1×16的2次冪+3×16的1次冪+3×16的零次冪=256+48+3=307
這是程式:
#include
#define base 8 /*要轉換成幾進位制數/*#define digit 100 /*轉換數的位數/*int main(void)
return 0;
} 要轉換成16進位制只要改下base的值就有了。
C語言中強制轉換的問題,C語言強制型別轉換問題
巧 float x 你是定義的單精度型,int i 定義的是整型。i int x 是將x強制轉換成整型。整型整型,就是要整數部分,小數部分就會捨去掉。printf x f,i d n x,i 輸出時,x是以百分號f輸出,那麼就不是以整型輸出。在整數後面就會跟六位小數部分,沒有值的位數會以0補上。就像...
C語言中的問題,幾個C語言中的問題???
將憶梅僑寶 getchar和putchar是c語言中的函式 getchar從鍵盤讀入字元 putchar在螢幕上顯示字元 吳幼珊佘溶 getchar和putchar是c語言中的函式,叫作標準字元輸入輸出函式,這裡的標準表示輸入是從標準裝置輸入的,即鍵盤,輸出是從標準裝置輸出的,即顯示器。這兩個函式包...
c 語言問題?在c語言中的問題?
c 語言是c語言發展起來的,所以繼承了c語言幾乎所有的特點,但c 語言又有自己的個性。c語言是一種程序導向的程式語言,而c 主要是程序導向的,因此c 有類的概念,而c語言就沒有。c 的功能強大,編譯器複雜,適合高階程式的設計和,c語言的編譯器簡易,適合低端程式。邏輯混亂,參考正常的實現吧。c語言的基...