當前位置:首頁 » 編程軟體 » 用編譯器轉換十進制數

用編譯器轉換十進制數

發布時間: 2022-06-30 20:28:27

『壹』 怎樣用c語言編程讓八進制轉換為十進制。

.二進制與十進制的轉換
(1)二進制轉十進制
方法:"按權展開求和"
例:
(1011.01)2
=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十進制轉二進制
·
十進制整數轉二進制數:"除以2取余,逆序輸出"
例:
(89)10=(1011001)2
2
89
2
44
……
1
2
22
……
0
2
11
……
0
2
5
……
1
2
2
……
1
2
1
……
0
0
……
1
·
十進制小數轉二進制數:"乘以2取整,順序輸出"
例:
(0.625)10=
(0.101)2
0.625
X
2
1.25
X
2
0.5
X
2
1.0
2.八進制與二進制的轉換
例:將八進制的37.416轉換成二進制數:
37

4
1
6
011
111
.100
001
110
即:(37.416)8
=(11111.10000111)2
例:將二進制的10110.0011
轉換成八進制:
0
1
0
1
1
0
.
0
0
1
1
0
0
2
6
.
1
4
即:(10110.011)2
=(26.14)8
3.十六進制與二進制的轉換
例:將十六進制數5DF.9
轉換成二進制:
5
D
F

9
0101
1101
1111.1001
即:(5DF.9)16
=(10111011111.1001)2
例:將二進制數1100001.111
轉換成十六進制:
0110
0001

1110
6
1

E
即:(1100001.111)2
=(61.E)16
參考資料:http://222.214.195.26/aoshai/szzh.htm

『貳』 C語言 二進制數轉化為十進制數

思路:十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。即用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

參考代碼:

#include"stdio.h"
voidfun(intn){
if(n==0)return;
fun(n/2);
printf("%d",n%2);
}
intmain(){
intn;
scanf("%d",&n);
fun(n);
return0;
}
/*
運行結果:例如求10的2進制
10
1010
*/

『叄』 如何用C語言將一個十六進制數字轉換為十進制

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

『肆』 用匯編語言將32位16進制數轉換成10進制數,怎麼辦

思路:

把十六進制(比如4位)數除以10000d(十進制數,因為十進制最大是5位--65535)
如果二位十六進制數就除以100d(因為十進制最大是三位--255)
商就是十進制的最高位
再把余數除以1000d
商就是十進制的次高位
再把余數除以100d
...
除以10d
....
除以1d

...以此類推
就得到十進制數

下面是四位十六進制數轉為十進制代碼:
code segment
main proc far
assume cs:code
start:
call hexibin ;16-2
call crlf ;換行

call binidec ;2-10
call crlf

jmp main ;get next input
ret
main endp

hexibin proc near
mov bx,0 ;clear BX for number
newchar:
mov ah,01h ;keyboard input
int 21h ;call DOS
sub al,30h ;ASCII to binary
jl exit ;jump if<0
cmp al,10d ;is it > 9d
jl add_to ;yes,so it's digit

;not digit(0-9),may be letter(a to f)
sub al,27h ;convert ASCII to binary
cmp al,0ah ;is it <0a hex?
jl exit ;yes,not letter
cmp al,10h ;is it > 0f hex?
jge exit ;yes,not letter
;is hex digit,add to number in BX
add_to:
mov cl,4
shl bx,cl
mov ah,0
add bx,ax
jmp newchar
exit:
ret
hexibin endp

binidec proc near
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret

dec_div proc near
mov ax,bx ;number low half
mov dx,0 ;zero out high half
div cx
mov bx,dx ;remainder into BX
mov dl,al ;quotient into DL
;print the contents of DL on screen
add dl,30h ;convert to ASCII
mov ah,02h
int 21h
ret
dec_div endp

binidec endp

crlf proc near
mov dl,0ah
mov ah,02h
int 21h

mov dl,0dh
mov ah,02h
int 21h
ret
crlf endp

code ends
end start

『伍』 用C語言編寫二進制轉換十進制的程序。

1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。

『陸』 C語言如何實現十六進制轉換成十進制

C語言實現十六進制轉換成十進制如下:

例如將十六進制數字 9FA8C 轉換成十進制

9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十進制)。

從右往左看,第1位的位權為 160=1,第2位的位權為 161=16,第3位的位權為 162=256,第4位的位權為 163=4096,第5位的位權為 164=65536 …… 第n位的位權就為 16n-1。

將各個位的數字乘以位權,然後再相加,就得到了十進制形式。

十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方。

所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。

再例如:十六進制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十進制)。



(6)用編譯器轉換十進制數擴展閱讀:

C語言10進制轉16進制

把十進制的數不停除以16的余數按從右到左的順序排起來就是16進制,例如:55/16=0餘5例如100 100/16=6餘4 6/16餘6,所以就是64,再例如1000 1000/16=62餘8 62/16=3餘12 3/16餘3所以結果是3C8 //。

對於整數部分,用被除數反復除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。

對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為0為止。

『柒』 16進制數怎麼轉換成10進制的

不是。
以Windows編譯器為例:0x表示該數為16進制。
各進制的表示法:
二進制:00001111
十進制:15
十六進制:0x0F

進制轉換公式:參考8421BCD碼轉換公式。
如:00001111=0x2^7+0x2^6+0x2^5+0x2^4+1x2^3+1x2^2+1x2^1+1x2^0=15
0x0F = 0x16^1+15x16^0 = 15

『捌』 c語言把二進制數轉換成十進制數的程序怎麼寫。

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

『玖』 計算機底層如何對十進制進行轉換比如(123)

在計算機中,一般都是以二進制的形式存儲數據。你開始定義的「123」是十進制的。把它轉換為二進制的才能存儲於計算機中。「123」轉換為二進制代碼是01111011(這是8位的存儲器)。編譯器通過對十進制的數進行除2得到余數,逆取余數就得到二進制數。在硬體具體實現的時候主要是通過不同的晶元實現除法、取余等操作。

『拾』 c語言如何把一個字元串格式的二進制數轉化為整數型的十進制數

首先要說,在計算機裡面不存在十進制數。我們看到的輸出的十進制數,其實是C編譯器把真正的二進制數的數值以十進制形式顯示在屏幕上。如果說計算機裡面有十進制數的話,那麼BCD數可以算是一種形式的十進制數。
而題目中的字元串格式的二進制數,也就是一串的'0','1'字元;轉化為整數型其實就是求得其實際數值,最後以十進制形式輸出。
#include <stdio.h>
int main()
{
long int m;
char c0[50],*c ;
while(scanf("%s",c0)!=EOF){
m = 0;c=c0;
while(*c)
m += (m + *(c++)-'0');
printf("%d\n",m);
}
return 0;
}

熱點內容
網投源碼 發布:2024-05-06 17:10:35 瀏覽:870
看門狗腳本 發布:2024-05-06 17:10:28 瀏覽:107
如何查看伺服器型號主板型號 發布:2024-05-06 16:52:25 瀏覽:601
無冬之夜腳本 發布:2024-05-06 16:46:04 瀏覽:634
雙引號在c語言 發布:2024-05-06 16:45:52 瀏覽:966
資料庫字體 發布:2024-05-06 16:33:53 瀏覽:697
c語言鏈表建立 發布:2024-05-06 16:17:33 瀏覽:221
python3xlwt3 發布:2024-05-06 16:09:59 瀏覽:373
c語言的意思啊 發布:2024-05-06 15:54:19 瀏覽:70
如何重置手機密碼realme 發布:2024-05-06 14:57:25 瀏覽:348