當前位置:首頁 » 編程語言 » c語言二進制數組

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]!='')
{
sign++;
}

printf(" 所輸入的二進制數為: ");
printf("%s ",binary);

printf("所輸入的二進制位數為:升虛 ");
printf("%d ",sign);

printf("該二進制數轉化為十進制數為: ");


translate(binary,sign);//調用自定義函數

return0;

}

voidtranslate(char*p,intm)
{

doublesum=0.0;
while(*p!='')
{
sum+=ldexp(*p-'0',m-1);
m--;
p++;
}

printf("%d ",(int)sum);
}

Ⅲ C語言定義一個元素都是8位的2進制數的數組

chararr[400];
//或納兆
unsignedchararr[400];

char 是飢森8位爛茄畝的

Ⅳ C語言,將存放在數組里的二進制數轉換成十六進制

Zbuf如果不是字元串是不會存成0x開頭的16進制的,但是可以輸出成01開頭的16進制

而做物Buf數組是可以用按權純氏液展開的方式變成10進制核裂的。

如果能夠看明白我上面的兩句話,我可以幫你寫一個Buf數組到10進制的轉換函數

Ⅳ C語言,將存放在數組里的二進制數轉換成十六進制

Zbuf如果不是字元串是不會存成0x開頭的16進制的,但是可以輸出成01開頭的16進制
而Buf數組是可以用按權展開的方式變成10進制的。
如果能夠看明白我上面的兩句話,我可以幫你寫一個Buf數組到10進制的轉換函數

Ⅵ C語言怎麼定義一個二進制數

C語言中沒有 「二進制數」這種類型,所以沒辦法直接定義;但可以直接定義16進制數。

例:

int main(){

int a;

scanf("%p",&a);//16進制數輸入%p是輸入一個十六進制的數scanf("%llx",&a);也可以輸入十六進制並且比較正規

printf("%d",a);//十進制輸出%d是輸出一個十進制的數

printf("0x%x",a);//16進制輸出printf("%llX ",a);也可輸出一個十六進制數如果紅色部分大寫X則輸出十六進制為大寫字母否則小寫x輸出為小寫字母

}

(6)c語言二進制數組擴展閱讀

C語言中定義整型數據的十六進制數:

unsigned int hex_val = 0x123;

//定義了一個整型變數並賦以初始值為一個十六進制常量。

if (scanf("%x", &hex_val) != EOF)

{

printf("它的八、十進制分別=%o、%d ", hex_val, hex_val);

}

Ⅶ 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語言把一個二進制比如10011按位存儲進數組里 比如a[0]=1,a[1]=0,並實現加1運算

下面的程序可搜此以讀入一個二進制數,並完成+1的操作,但是必須保證最高位沒有進位。
#include<stdio.h>
intmain()
{int彎襪i;
chara[101];
scanf("%s",a);
for(i=0;a[i];i++);
a[--i]++;
世鬧迅while(i>0&&a[i]>'1')
{a[i]='0';
a[--i]++;
}
printf("%s ",a);
return0;
}

Ⅸ c語言怎麼生成32個不一樣的5位二進制數組 就是 有32個數組 每個數組里

#include<stdio.h>
#defineiSizeA32
#defineiSizeB5
#defineiSizeC6

voidaddBinary(char*pA,char*pB)
{
inti;
charcCarry[iSizeC]={0};
for(i=iSizeB-1;i>=0;i--)
{
pA[i]=pA[i]+pB[i]+cCarry[i+1];
if(pA[i]==3)
{
液枝pA[i]=1;
cCarry[i]=1;
}
elseif(pA[i]==2)
{
pA[i]=0;
吵盯cCarry[i]=1;
}
else
cCarry[i]=0;
}
}

voidBinary(char*pA,char*pB)
{
inti;
for(i=0;i<5;i++)
pA[i]=pB[i];
}

intmain(void)
{
inti,j;
charcBinaryArray[iSizeA][iSizeB]={{0}};
charcBinary[iSizeB]={0};
cBinary[iSizeB-1]=1;

//生成數據
for(i=1;i<iSizeA;i++)
{
Binary(cBinaryArray[i],cBinaryArray[i-1]);
addBinary(cBinaryArray[i],cBinary);
}

升埋和//輸出數據
for(i=0;i<iSizeA;i++)
{
for(j=0;j<iSizeB;j++)
{
printf("%d",cBinaryArray[i][j]);
}
printf("%s"," ");
}

return0;
}

Ⅹ c語言 二進制的byte數組轉化為int數組

如果byte裡面保存的是數值,那麼你可以調整順序(低位在前,高位在後)之後,通過memcpy直接轉換:
memcpy(&intVar, byteArray, sizeof(int));
如果byte保存的是數字的字元,那麼你需要進行轉換,具體如何轉換,要看byte裡面保存的是什麼格式了。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:945
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372