#include <iostream>
int main()
{
FILE *fp;
if((fp = fopen("Message.txt","r")) == NULL)
{
return 0;
}
char Message[16][4];
int i =0 ;
int j = 0;
int k = 0;
int m,n;
while (!feof(fp))
{
Message[j][i] = fgetc(fp);
i++;
if (i==4)
{
i = 0;
j++;
if(j == 16)
{
j = 0;
k++;
}
}
}
fclose(fp);
Message[j][i-1] = (char)0x80;
__int64 Length = k*16*8*4 + j*4*8 + i*8;
int d = (448 - Length)%512/8;
for ( m = 0;m < d;m++)
{
Message[j][i] = '\0';
i++;
if (i==4)
{
i = 0;
j++;
if(j == 16)
{
j = 0;
k++;
}
}
}
for ( m = 8;m > 0;m--)
{
Message[j][i] = Length >>(m-1)*8;
i++;
if (i==4)
{
i = 0;
j++;
if(j == 16)
{
j = 0;
k++;
}
}
}
fp = fopen("padding.txt","a");
fwrite("\n\n学号:2009123002,姓名:\n",sizeof("\n\n学号:2009123002,姓名:\n"),1,fp);
fwrite("W[0]:",sizeof("W[0]:"),1,fp);
for ( n = 0;n<4;n++)
for( m=0;m<8;m++)
fputc((((Message[0][n]&(1<<(7-m)))>>(7-m))& 0x01 )+ 48,fp);
fwrite("\nW[1]:",sizeof("\nW[1]:"),1,fp);
for ( n = 0;n<4;n++)
for( m=0;m<8;m++)
fputc((((Message[1][n]&(1<<(7-m)))>>(7-m))& 0x01 )+ 48,fp);
fwrite("\nW[2]:",sizeof("\nW[2]:"),1,fp);
for ( n = 0;n<4;n++)
for( m=0;m<8;m++)
fputc((((Message[2][n]&(1<<(7-m)))>>(7-m))& 0x01 )+ 48,fp);
fwrite("\nW[14]:",sizeof("\nW[14]:"),1,fp);
for ( n = 0;n<4;n++)
for( m=0;m<8;m++)
fputc((((Message[14][n]&(1<<(7-m)))>>(7-m))& 0x01 )+ 48,fp);
fwrite("\nW[15]:",sizeof("\nW[15]:"),1,fp);
for ( n = 0;n<4;n++)
for( m=0;m<8;m++)
fputc((((Message[15][n]&(1<<(7-m)))>>(7-m))& 0x01 )+ 48,fp); //写入文件
fclose(fp);
return 0;
}