當前位置:首頁 » 編程語言 » c語言十六進制轉換二進制

c語言十六進制轉換二進制

發布時間: 2023-06-17 19:50:48

c語言 十六進制轉換為二進制 用函數做

我不會C語言,只會delphi
我給你一段delphi語言的代碼吧,我剛寫的
procere TForm1.Button1Click(Sender: TObject);
var s,s1:string;

m,i:integer;
begin

s:=edit1.text;

m:=length(s);//16進制字元串的長度

S1:='';

for i:=1 to m do

begin

case s[i] of //對於16進制的每一位,進行下面的操作

'0': S1:='0000'+S1;

'1': S1:='0001'+S1;

'2': S1:='0010'+S1;

'3': S1:='0011'+S1;

'4': S1:='0100'+S1;

'5': S1:='0101'+S1;

'6': S1:='0110'+S1;

'7': S1:='0111'+S1;

'8': S1:='1000'+S1;

'9': S1:='1001'+S1;

'A': S1:='1010'+S1;

'B': S1:='1011'+S1;

'C': S1:='1100'+S1;

'D': S1:='1101'+S1;

'E': S1:='1110'+S1;

'F': S1:='1111'+S1;

end;

end;

edit2.Text:=s1;
end;

我說一下我的思路,你可以修改一下,照這個思路做:
先定義一個 字元串變數 S1 ,用來存2進制字元串,並作為中間變數
十六進制的1位 表示 2進制的 4位
所以 對於16進制的每一位,看這個位是幾,如果是0 那就對S1加上『0000』,如果是1 那就加上』0001『,依次類推

Ⅱ c語言怎麼把16進制轉化為二進制

//將16進制的數保存到一個數組中,並將它一個個輸出
#include<stdio.h>
#defineN16
intmain()
{
intn;
inta[N];
inti;
printf("Inputa16進制數:");
scanf("%x",&n);
for(i=0;i!=N;++i)
{
a[N-1-i]=n%2;
n/=2;
}
for(i=0;i!=N;++i)
{
printf("%d",a[i]);
if((i+1)%4==0)
printf("");
}
printf(" ");
return0;
}

示例運行結果:

Input a 16進制數: abcd

1010 1011 1100 1101

Ⅲ c語言,如何將十六數轉換為二進制數組,再將二進制數組逆序後,輸出新的十六進制數;

有一個遲猜非常簡單的演算法,直接映射:
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
每位十六進制閉局數用四位二進製表示 。
例如:轎旦讓
(1DE)16 =(1 1101 1110)2

Ⅳ C語言如何把一個十六進制數轉換為二進制數組輸出

樓下的程序應該是將16進制轉化為10進制數組,將其改進一下即可,也就是加上將十進制轉換為二進制的程序段:全程序如下:
#include <stdio.h>
void main(
{
int i;
int m = 0;
char c[10];
char *r;
scanf("%s",c);
if(c[0]!='0'&&c[1]!='x'&&c[1]!='X')/*判斷是不是十六進制數*/
{
printf("不是十六進制數\n");
}
else
{{
i = 2;
while (c[i]!='\0')
{
m = m*16+c[i]-'0';/*將十六進制數轉換為十進制數*/
i++;
}
if(m=0)
printf("%d\n",0);
else
for(i=0;m!=0;i++)/*將十進制數轉換為二進制數*/
{
*(r+i)=m%2;
m=m/2;
}
for(;i-->=0;)
printf("%d",*(r+i));/*輸出二進制數*/
printf("\n");
}
}關於十六進制直接轉換為二進制數,直接做很簡單,但是用程序實現起來不容易,所以先轉換為十進制,再轉為二進制,雖有點笨,也算是一種方法吧呵呵,我好久沒用c了,可能程序中有些錯誤,但是進制轉換演算法本身是沒有問題的,也許可以參考一下,希望對樓主有所幫助,早日解決問題

Ⅳ 用C語言編程將十六進制轉換為二進制

十進制轉二進制:-----------------------------------------------
#include
#include
void
main()
{
int
d,n,i,j,a[50],outformat=1;
printf("輸入一個數:");
scanf("%d",&n);
if(n==0)
printf("\n十進制
0
轉換二進制數:0");
else
{
printf("\n十進制
%d
轉換二進制數:1",n);
for(i=1;n!=1;++i)
{
d=n%2;
a[i]=d;
n=n/2;
}
for(j=i-1;j>0;--j)
{
if
(outformat%4==0)
printf("
");//取模的目的是為了每4個一組
++outformat;
printf("%d",a[j]);
}
}getch();
}
十進制轉十六進制:-----------------------------------------------
#include
void
main()
{
int
u10;
char
u16[10];
int
w=0,a,b,i;
printf("請輸入一個數字-->");
scanf("%d",&u10);
if(u10==0)
{
u16[0]='0';
w++;
}
else
{
a=u10;
while(a)
{
b=a%16;
if(b<10)
{
u16[w]='0'+b;
}
else
{
u16[w]='a'+b-10;
}
a=a/16;
w++;
}
}
printf("\n");
printf("%d(10)轉換為16進制數字為:",u10);
for(i=w-1;i>=0;i--)
{
printf("%c",u16[i]);
}
printf("\n");
}

Ⅵ C語言中,16進制如何轉換成2進制

十六進制換成二進制,就是一位換成四位就可以啦!0x3c,0x表示十六進制,3就換成0011,c就是十進制的十二,換成二進制為1011。合起來就是啦00111011,也可以把前面2個0去了,一般不去 .....

熱點內容
翻譯分為匯編和編譯 發布:2025-02-12 14:29:12 瀏覽:233
什麼是新聞編譯 發布:2025-02-12 14:23:12 瀏覽:853
如何查看手機存儲 發布:2025-02-12 14:21:15 瀏覽:50
cacti自定義腳本 發布:2025-02-12 14:21:13 瀏覽:313
編譯安卓步驟 發布:2025-02-12 14:19:39 瀏覽:222
php把數組分組 發布:2025-02-12 14:19:37 瀏覽:280
linux部署weblogic 發布:2025-02-12 14:18:58 瀏覽:504
cs文件編譯python 發布:2025-02-12 14:02:39 瀏覽:531
如何伺服器搬家 發布:2025-02-12 13:58:41 瀏覽:28
轎車什麼配置從哪裡看 發布:2025-02-12 13:48:51 瀏覽:453