#include <stdio.h> #include <string.h> char* DecToBin(int value); int main(int argc,char* argv[]) { int value = 9999; char* Strp = DecToBin(value); printf("result:%s/n",Strp); return 0; } //十进制数转二进制 char* DecToBin(int value) { char* strp = new char[100]; memset(strp,0,sizeof(char)*100); int j=0; do { int n = value%2; char cTmp = n + '0'; strp[j++] = cTmp; } while ( value = value/2 ); printf("before:%s/n",strp); //中间结果,需要逆序 //逆序处理,得出最终的二进制数 int length = strlen(strp); int mid = length/2; //因为从0计算,则无论长度为奇偶,都只取一半 for(int i=0;i<mid;++i) { char tmp = strp[i]; strp[i] = strp[length-1-i]; strp[length-1-i] = tmp; } printf("after :%s/n",strp); return strp; }