c語言二進制數組
發布時間: 2023-05-26 01:00:27
Ⅰ 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語言將二進制字元數組轉化為十進制源碼
//自己寫的一些代碼,可以運畝笑尺行,源代碼如下,運行環境為VisualC++6.0,自定義函數translate()實現將二進制字元數組//轉化為十進制
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<dos.h>
voidtranslate(char*p,intm);
intmain()
{
charbinary[10];//二進制字元數組
intsign=0;
printf("請輸入迅高二進制數(不超過十位) ");
scanf("%s",binary);
while(binary[sign]!='