當前位置:首頁 » 編程語言 » 六進制可以在c語言編程嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

六進制可以在c語言編程嗎

發布時間: 2022-05-18 08:31:40

c語言編程怎麼實現進制轉換

可以用直接法和間接法轉換。

❷ C語言程序設計。

基本是按照需求來寫的,有BUG的話樓主自己改下哈。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

/*
輸&#12042;&#12032;個&#12055;六進制數,
返回對應的&#12102;符號&#12055;進制數。
&#12055;六進制數輸&#12042;並保存在&#12032;個字元串,
函數需能對&#12055;六進制數是否正確進
&#12175;判斷,
如「123」有前導空&#12137;字元,算&#12032;個合法的&#12055;六進制數;
「12fg」中含有&#12206;法字元,可以僅轉換「12f」,並輸出警告信息
「h123」為&#12206;法字元串,返回結果為0,並輸出警告信息。
*/

//0error
//1warnning
//2right


intjudeg(char*b)
{
intlength=strlen(b);
intcycle,value;
if(b[0]==''&&b[0]<='f')
{
for(cycle=1;cycle<length;cycle++)
{
if((b[cycle]>='0'&&b[cycle]<='9')||(b[cycle]>='a'&&b[cycle]<='f'))
value=2;
elseif(b[cycle]>'f')
{
b[cycle]='';
value=1;
}
}
}
elseif(b[0]>'f')
value=0;
else
{
for(cycle=0;cycle<length;cycle++)
{
if((b[cycle]>='0'&&b[cycle]<='9')||(b[cycle]>='a'&&b[cycle]<='f'))
value=2;
elseif(b[cycle]>'f')
{
b[cycle]='';
value=1;
}
}
}
returnvalue;
}


intmain(void)
{
chara[100];
intvalue=-1,hex;
printf("HEX:");
scanf("%x",&hex);
sprintf(a,"%x",hex);
printf("getstring=%s,hex=%x ",a,hex);
value=judeg(a);
printf("value=%d ",value);
if(value==0)
printf("Warnning:error! ");
elseif(value==1)
{
printf("Warnning:containsillegalcharacters! ");
printf("string=%s,int=%d ",a,hex);
}
else
{
printf("string=%s,int=%d ",a,hex);
}

return0;


}

❸ 各位大俠,問下C語言編程進制轉換問題

通常是轉換成十六進制的
如果非要用二進制可以用下面的代碼
#define
N
4
#include<math.h>
#include<stdio.h>
void
main()
{
long
a[N],*p,sum=0,che=pow(10,N-1);
printf("請輸入二進制數:");
for(p=a;p<a+N;p++)
scanf("%1ld",p);
for(p=a;p<a+N;p++)
{
sum=sum+(*p)*che;
che=che/10;
}
printf("輸入的是個二進制數,其十進制值是:%ld\n",sum);
}

❹ 請問單片機C語言編程中那些進制數是什麼意思啊 下面舉例:

首先,你應該知道0x40是十六進制數吧。其次,計算機裡面的數據以二進制存儲也不用多說了。
使用十六進制數有不同的作用。
首先,十六進制的數也是一個數字,可以進行數字運算,比如0x40+0x40=0x80。
其次,十六進制和二進制的轉換十分密切。在單片機中,對寄存器的操作是一個十分重要的內容(什麼是寄存器?不知道的話說明你單片機還沒入門,趕緊網路去吧),有些寄存器就像是一個開關。假設有一個寄存器叫SWITCH(我編的名字,意思是開關),它有八位,作用是八個燈的開關。如果第一位是1,則把第一盞燈打開,第二位是1,就打開第三盞,依此類推。如果我想把第一三盞燈打開,我就需要給SWITCH賦值 10100000,第一位和第三位是1,打開,其他是0,關閉。這樣就相當於一個語句 SWITCH = 10100000。但是10100000太長了,如果改成16進制數,就是0xA0,那麼,這個語句也可以寫成 SWITCH = 0xA0。這就是用十六進制的好處。
那麼,怎麼知道用什麼數據呢?你就得知道某個寄存器每一位的作用。在你的單片機對應的手冊里,會對每一個寄存器的作用做詳細的解釋。去看看操作手冊,你就知道賦值是什麼用了。
最後,用windows自帶的計算器軟體裡面的 程序員 模式(查看——程序員),能方便地實現各個進制的轉換。

用單片機不少時間啦~給你一點點幫助~

❺ C語言編程新手學習中你知道有哪些進制嗎

計算機使用2進制,人通常使用10進制
在編寫程序時,由於二進制不好記憶和閱讀,因此採用8進制和16進制來簡化程序設計
在日常生活中會遇到非十進制的:12進制(計小時、計數單位「打「),60進制(計分秒),還有角度計量、舊制長度、英鎊,等等

❻ 用c語言編程:進制轉換

上面的仁兄做的不怎樣,不能滿足要求。我做了一個。你試試!可以放很大的數。我也是菜鳥級的。希望我的付出你會認可!!
#include"stdio.h"
#include"math.h"
#include"ctype.h"
void main()
{
double R,S,N=0;
char a[50],m;
char str[]="0123456789ABCDEF",c[2];
int i=0,j=0,b[50];
long n;
clrscr();
printf("請輸入轉換前的數據N,進制R和轉換後的進制S(R和S請勿超過16):\n");
scanf("%s%lf%lf",&a,&R,&S);
printf("將%.0lf進制數%s轉換成%.0lf進制數的結果為:",R,a,S);
if(a[0]=='-')/*當以負數輸入的時候輸出負號*/
{
printf("-");
a[0]='0';
}
while(a[i]!='\0')/*把輸進去的字元型轉換成整型*/
{
if(a[i]>='0'&&a[i]<='9')
{
c[0]=a[i];
b[i]=atoi(c);/*數據類型轉換*/
}
if(a[i]>='A'&&a[i]<='F')/*在以A至F輸入時做處理*/
{
b[i]=a[i]-65+10;/*A的ASCLL為65*/
}
i++;
}
i--;
while(i>=0)/*R進制數N對應10進制的值*/
{
N+=b[i--]*pow(R,j++);
}
n=N;
while(n!=0)/*除以要轉換的S進製取余數放到數組b中*/
{
b[++i]=n%(long)S;
n=n/S;
}
while(i>=0)/*數組b倒序輸出對應的str的值*/
{
printf("%c",str[b[i--]]);
}
}


❼ c語言怎麼樣實現6進制

把39轉換為6進制:

#include<stdio.h>
voiddec2n(intx,intn)
{if(x>=n)dec2n(x/n,n);
printf("%c",x%n>9?x%n+55:x%n+48);
}
intmain()
{intx,n;
scanf("%d%d",&x,&n);
dec2n(x,n);
return0;
}

❽ C語言編程,輸入十進制數輸出十六進制和八進制

可以通過下面的公式解決

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

for(i = cot8 - 1; i >= 0; i--)

printf("%d", Array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)

(8)六進制可以在c語言編程嗎擴展閱讀:

十進制轉十六進制的具體方法:

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

對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。

10進制數轉換成十六進制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和余數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。

❾ c語言編程輸入一個整數,輸出它的十六進制、八進制、十進制、科學計數法

//C語言:
#include<stdio.h>
intmain(void)
{
inta;
scanf("%d",&a);
printf("8進制:%o 10進制:%d 16進制:%x 科學記數法:%e",a,a,a,a);
return0;
}
//C++:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;
cin>>a;
cout<<endl;
cout<<"8進制:"<<oct<<a<<endl;
cout<<"10進制:"<<dec<<a<<endl;
cout<<"16進制:"<<hex<<a<<endl;
return0;
}