很简单。如果这个十进制数的值在 C/C++ 语言本身所支持的范围内,如 char, short, int, long 之类,只需循环 N 次就能得到二进制值。这里的 N 等于数据类型的位数,如 char=8,short=16, int=32, long=32。转换的方法就是直接判断数据的每一位,示例代码(假定要转换一个值在0~4294967295之间的无符号长整型数)如下:
#include <stdio.h>
#include <stdlib.h>
//参数 value 是要转换的数,len1 是要返回的连续1的最大长度,
//len0 是要返回的连续0的最大长度
void BinaryPrint( unsigned long value, int * len1, int * len0 )
{
int i, max0, max1;