【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include<stdio.h>
void itob(int n,char s[], int b)
{
 int i=1;
 for(;i<=32;i++)    //共循环了32次,保证得到32位的二进制数
 {
  s[i-1]= n % b;   //数组是从编号0开始的,一直到编号31结束
  n = n/b ; //用模除的方法依次得到每位进制数
 }
 for(i=32;i>0;i--)
 {
  printf("%d",s[i-1]); 
 }
}
int main()
{
 
 char ret[32];
 char s[32];
 int i=0;
 int n=0;
 scanf("%d",&n);
 itob(n,s, 2);    //此时进制b=2
 return 0;
}

时间: 2024-10-25 21:28:43

【详解】C语言:编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。的相关文章

整数n转换为以b进制的数,itob

写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数.保存到s中. #include<stdio.h> #include<stdlib.h> void itob(int n, char s[],int b)//整数n转换为以b进制的数 { int i = 0; int start = 0; int end = 0; if ((b == 2) || (b == 8))//2进制和8进制 { while (n) { s[i] = n%b + '0

【C语言】【笔试题】编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。

#include <stdio.h> static int i=0; int itob(int n,char s[],int b) { if(n<2) { s[i]=n+'0'; } else { itob(n/2,s,b); //递归 i++; n=n%2; s[i]=n+'0'; } s[i+1]='\0';//结束标志 return 0; } int main () { char s[20]; int num=0; scanf("%d",&num); i

编写一个函数itob(int num,char s[], int n),将整数num转换为以n进制的数。保存到s中。

在本题中,二进制.八进制及十进制算法思路一样,采取模除的方式,输出各个位置的数,接着采用逆序输出.在十六进制中"0123456789abcdef"[num%16],求出各位的数字. #include<stdio.h> void reverse(int len,char arr[]) //逆置 {  int left =0;  int right =len -1;  while(left < right)  {   char temp = arr[left];     

C语言 编写一个函数,用递归方式求最大公约数。

编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数.利用递归方式实现. #include <stdio.h> int gcd(int a,int b) { int tmp; if(a==0 || b==0) return 0; if(a<b) { tmp=a; a=b; b=tmp; } if(a%b==0) return b; else return gcd(b,a%b); } int main() { int num; num=gcd(12,4); printf(&

C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. #include <stdio.h> #include <string.h> #include <assert.h> int reverse_string(char * str) { assert(str); int len=strlen(str); char *ch=str+len-1; while(len>1) { char tmp=*st

详解C语言的main函数

如图所示:#include<stdio.h>这是一个头文件,包含的是C程序运行的C语言的库函数,只有包含了相关的头文件,在程序中才能调用.stdio表示输入输出控制.printf():就是来自这个头文件. int main(int argc ,const char *argv[]){...} :int 表示函数的返回值类型,main是函数名, ()里面的是参数,前面的关键字标示的是参数的类型 ,argc是命令行中的参数的个数,argv[]对应每一个参数. return是一个函数的返回值,当函数

详解C语言的htons函数

在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 int main(){   printf("%d /n",htons(16)); return 0;} 得到的结果是4096,初一看感觉很怪. 解释如下,数字16的16进制表示为0x0010,数字4096的16进制表示为0x1000. 由于Intel机器是小尾端,存储数字16时实际顺序为1000,存储4096时实际顺序为0010.因此在发送

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)

/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数.负整数) 例如:"12" 返回12 "-123" 返回-123 函数原型:int my_atof(char *str) */ #include <stdio.h> int my_atof(char *str) { int flag=0; int m=0; if(*str=='-') { flag=1; str++; } while(*str!='\0') { if(*str<

【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。

/*编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用C函数库中的字符串操作函数.*/ #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_string