當(dāng)前位置:
首頁(yè) >
【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。...
發(fā)布時(shí)間:2023/12/31
33
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include<stdio.h>void?itob(int?n,char?s[],?int?b)
{int?i=1;for(;i<=32;i++)????//共循環(huán)了32次,保證得到32位的二進(jìn)制數(shù){s[i-1]=?n?%?b;???//數(shù)組是從編號(hào)0開(kāi)始的,一直到編號(hào)31結(jié)束n?=?n/b?;?//用模除的方法依次得到每位進(jìn)制數(shù)}for(i=32;i>0;i--){printf("%d",s[i-1]);?}
}int?main()
{char?ret[32];char?s[32];int?n=0;scanf("%d",&n);itob(n,s,?2);????//此時(shí)進(jìn)制b=2return?0;
}
??????? 經(jīng)過(guò)深層次的學(xué)習(xí),我將此題又做進(jìn)一步的修改與完善,解決了任意進(jìn)制輸出的效果,并且每次輸出不需要32位全部輸出,而是具體情況需要幾位二進(jìn)制就輸出幾位數(shù)。代碼如下:
#include<stdio.h>void?reverse(int?len,char?arr[])?//逆置輸出正確的進(jìn)制位 {int?left?=0;int?right?=len?-1;while(left?<?right){char?temp?=?arr[left];??//a[0]與最后一個(gè)互換arr[left]?=?arr[right];arr[right]?=?temp;right?--;left?++;???} }void?itob(int?num,char?s[],?int?b) {int?i=0;while(num)??{if(b<10){?s[i]=num%?b+'0';????//得到int型??num?/=?b?;?//用模除的方法依次得到每位進(jìn)制數(shù)i++;}else?if(b==16){s[i]="0123456789abcdef"[num%16];num/=16;i++;}?else{break;?}}s[i]='\0';reverse(i?,?s); }int?main() {char?s[32];int?b=0;scanf("%d",&b);itob(255,s,?b);????//此時(shí)進(jìn)制b可以任意輸入printf("%s\n",s);return?0; }?
轉(zhuǎn)載于:https://blog.51cto.com/10740184/1706404
總結(jié)
以上是生活随笔為你收集整理的【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: i茅台客户端
- 下一篇: dedecms批量删除文档关键词可以吗