c 语言 将整数 转换为 2 ,8,16 进制数

这篇博客介绍了如何使用C语言将整数转换成2, 8, 和16进制的字符串表示,提供了一个名为`itob`的函数示例,该函数能够根据指定的基数将整数格式化并存储为字符串。" 132440956,19673917,R语言与RStudio的文本分析实战,"['R语言', '文本挖掘', '数据分析', 'RStudio', '数据预处理']
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//倒置数组
void revers(char s[])
{
    int c, i, j;
    j = strlen(s) - 1;//求得s的长度
    for(i = 0;i < j;i++ , j--)
    {
        c = s[i];
        s[i] = s[j]; //首尾交换
        s[j] = c;
    }
}

//将整数 n 以 b 为底的数,并将转换结果以字符串的形式保存在 s 中

// 如:itob(n,s,16) 把整数 n 格式化为 16 进制保存在 s 中

void itob( int n, char s[] , int b)
{
    int i, j, sign;
    sign = n;
    i =0;
    if( sign < 0)
    {
        n = -n;
    }
    do
    {
        j = n % b;
       s[i++] = (j <= 9) ? j + '0' : j + 'a' -10;
    } while ( (n /= b) > 0);


    if(sign < 0)
    {
        s[i++] = '-';
    }
    s[i] = '\0';
    revers(s);
}
int main(void)
{
    char buf[500];
    int n = 0;
     int b = 0;
     int t = 0;


    printf("输入要转换的数:\n");


    while( ( scanf("%d",&n)) !=  EOF  )
     {


         printf("输入的是: %d\n",n);


         printf("输入要转换的进制: 2 ,8,16\n");
         scanf("%d",&b);


         printf("你输入的:%d,转换为: %d 进制后是: ",n,b);


         itob(n,buf,b);


         printf("%s\n",buf);


         memset(buf,'\0',sizeof(buf));//重置buf 所以元素为 0
         b = n = 0; //重置 b n 为零
      }


    return 0;
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值