该工具实现将txt文件中的数据进制转换并输出固定32位的二进制数,适用于某些随机数测试或者其他进制转换场景。
代码如下:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *leakyCellInputFile,*testFile;
int leakyBank,leakyRow,leakyColumnMultiBandWidth;
char buffer[200];
leakyCellInputFile = fopen("dec.txt","r");
testFile = fopen("hex.txt","w");
while(fgets(buffer, 50, leakyCellInputFile))
{
sscanf(buffer,"%d %d %d",&leakyBank,&leakyRow,&leakyColumnMultiBandWidth);
fprintf(testFile,"%08x\n",leakyBank);
}
fclose(leakyCellInputFile);
fclose(testFile);
leakyCellInputFile = fopen("hex.txt","r");
testFile = fopen("bin.txt","w");
int i = 0;
while(fgets(buffer, 50, leakyCellInputFile))
{
i = 0;
while(buffer[i]!='\0')
{
switch (buffer[i])
{
case '0':fprintf(testFile,"%s","0000");break;
case '1':fprintf(testFile,"%s","0001");break;
case '2':fprintf(testFile,"%s","0010");break;
case '3':fprintf(testFile,"%s","0011");break;
case '4':fprintf(testFile,"%s","0100");break;
case '5':fprintf(testFile,"%s","0101");break;
case '6':fprintf(testFile,"%s","0110");break;
case '7':fprintf(testFile,"%s","0111");break;
case '8':fprintf(testFile,"%s","1000");break;
case '9':fprintf(testFile,"%s","1001");break;
case 'a':fprintf(testFile,"%s","1010");break;
case 'b':fprintf(testFile,"%s","1011");break;
case 'c':fprintf(testFile,"%s","1100");break;
case 'd':fprintf(testFile,"%s","1101");break;
case 'e':fprintf(testFile,"%s","1110");break;
case 'f':fprintf(testFile,"%s","1111");break;
case '\n':fprintf(testFile,"%c",'\n');break;
default:fprintf(testFile,"%c",' ');break;
}
i++;
}
}
fclose(leakyCellInputFile);
fclose(testFile);
}
编译&&运行
运行结果如下图所示:
dec.txt是输入文件
hex.txt是十进制转二进制的中间产物文件,该文件为16进制
bin.txt最终产物文件
固定输出32位,不足32位的数在高位补零