我正在讀取文件中的文本並將其作爲二進制輸出。我修改了二進制轉換,如下所示:第一個字被重複的第一個字
- 每個大寫字母應以01開頭,後面跟着5位。
- 5位應保存該字母的值。
- 字母將具有值作爲A-2,B-3,C-4,d-5 ...
例如:HI->(0101001)(0101010)
我的代碼段如下所示:
void printinbits(int n)
{
for (int c = 4; c >= 0; c--)
{
long int k = n >> c;
if (k & 1)
printf("1");
else
printf("0");
}
}
int main()
{
//first letter is being repeated
char check[200];
FILE*fin= fopen("/Users/priya/Desktop/test.txt.rtf","r");
while((fscanf(fin,"%199s",check))==1)
{
for(int i=0;i<strlen(check);++i)
{
if(check[i]>=65&&check[i]<=90)
{
printf("01");
int n=check[i];
n-=63;
printinbits(n);
}
}
}
return 0;
}
我的輸入 - >
HELLO
我的輸出 - >
(0101001)(0101001)(0100110)(0101101)(0101101)(0110000)
(正如你所看到的,第一個字母H被重複)(各種字母用括號分開)
建議:在輸出中添加某種分隔符,否則很難閱讀和理解...... –
@SouravGhosh完成了。 –
邏輯只是將字母轉換爲數字並將其附加到「01」上?假設這個字母是'C',那麼這個數字是'3'(從'A'的位移)變成二進制的? –