上网看到一个将任意整数转二进制字符串的代码,修改了一下,共享出来:
IDE为:DevCPP
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- #define N 8
- #define M 1<<(N-1)
- #define ERR (0)
- #define OK (1)
- #define LOG_ERR(s)\
- {\
- printf("line[%d], %s\n", __LINE__, s);\
- system("pause");\
- }
- typedef unsigned int UL;
- typedef unsigned short US;
- typedef unsigned char UC;
- char inputFileName[] = "test.jpg";
- char outputFileName[] = "output.txt";
- char binaryBuff[N + 1];
- void toBinaryString(UL num)
- {
- int i;
- memset(binaryBuff, 0, N + 1);
- for (i=0; i<N ;i++)
- {
- if ((num&M)==0)
- {
- strcat(binaryBuff, "0");
- }
- else
- {
- strcat(binaryBuff, "1");
- }
- num<<=1;
- }
- }
- int main()
- {
- FILE *inputFile = NULL;
- FILE *outputFile = NULL;
- char c = 0;
- inputFile = fopen(inputFileName, "rb");
- if (NULL == inputFile)
- {
- LOG_ERR("call fopen(inputFileName, \"rb\") failed!");
- return 0;
- }
- outputFile = fopen(outputFileName, "wb");
- if (NULL == inputFile)
- {
- LOG_ERR("call fopen(outputFileName, \"wb\") failed!");
- return 0;
- }
- while(c = fgetc(inputFile))
- {
- if (feof(inputFile))
- {
- break;
- }
- toBinaryString(c);
- fprintf(outputFile, "%s\n", binaryBuff);
- }
- fflush(outputFile);
- fclose(inputFile);
- fclose(outputFile);
- system("pause");
- return 0;
- }
本文转自fatshi51CTO博客,原文链接:http://blog.51cto.com/duallay/1139410 ,如需转载请自行联系原作者