额,这篇文章也是管理员昨天删的,(管理员,亲,看到以后别删了,我这真不是什么广告,是根据题目自己写的代码)
这是之前根据16进制转变为字符串的形式想起来的,写了几天程序,还是这个最让我高兴,有种学以致用的感觉。
-
/*********************************************************
-
2. 数制转换
-
-
* 问题描述:
-
在 32 位处理器上,将任一整数转换为二进制形式。
-
-
* 要求实现函数:
-
void DecToBin (unsigned int iDec, char pBin[32])
-
输入:iDec 需要转换的十进制整数
-
输出:pBin 转换为二进制后的字符串,高位在左边,不足 32位补0
-
-
* 示例
-
输入:123
-
输出:{“00000000000000000000000001111011”}
-
********************************************************/
-
-
#include<stdio.h>
-
/********************************************************
-
编程思路:
-
先将数组初始化为0,整数自除,余数输出
-
注意一点,这里要有一次itoa,因为数组字符串给的是字符型
-
(实际上那给32位是肯定不够的,假如遇见很大的数,因为有‘\0’)
-
*********************************************************/
-
-
void DecToBin (unsigned int iDec, char pBin[32])
-
{
-
int i;
-
for(i = 0; i < 32; i++)
-
pBin[i] = '0';
-
-
for(i = 0; iDec != 0; iDec /= 2, i++)
-
pBin[31-i] = "01"[iDec % 2];
-
}
-
-
int main(int argc, char **argv)
-
{
-
int i;
-
unsigned idec = 123;
-
char pBin[32] = {'1', '2', '5'};
-
-
DecToBin(idec, pBin);
-
-
for(i = 0; i < 32; i++)
-
{
-
printf("%c", pBin[i]);
-
}
-
-
while(1);
-
}
阅读(1904) | 评论(0) | 转发(0) |