C语言
定义函数void DecToBin(int a, char b);函数功能是将整数a转换为它对应的32位二进制机器数,将32位二进制机器数以字符串形式存于字符数组b (以“\0”字符结束)。。
比如: a=160, 则函数调用结束后,b数组存储的串为000000000000000000100000
a=-1,则函数调用结束后,b数组存储的串为1111111111111111111111
从键盘输入- -个整数a,调用该函数,然后输出存储于b数组的表示二进制机器数的字符串
要求:不允许使用%2运算,只能利用位运算符(如:移位运算,与运算等)实现程序功能。
本帖最后由 jackz007 于 2019-11-26 17:51 编辑
#include <stdio.h>
void DecToBin(int a , char b[])
{
unsigned int d , k , m ;
for(d = 0x80000000 , k = 0 ; ! (a & d) ; d >>= 1 , k ++) ;
for(m = 0 , b = 0 ; k < 32 ; b += '0' , b = 0 , d >>= 1 , k ++) if(a & d) b ++ ;
}
main(void)
{
int a ;
char b ;
a = -1 ;
DecToBin(a , b) ;
printf("%10d : %s\n" , a , b) ;
a = 160 ;
DecToBin(a , b) ;
printf("%10d : %s\n" , a , b) ;
a = 2477 ;
DecToBin(a , b) ;
printf("%10d : %s\n" , a , b) ;
}
编译、运行实况:
C:\Bin>g++ -static -o x x.c
C:\Bin>x
-1 : 11111111111111111111111111111111
160 : 10100000
2477 : 100110101101
C:\Bin>
页:
[1]