<endl;
買粉絲ut<<"請按任意鍵返回\n";
getch();
system("cls");
mainmenu();
return 0;
}
double 買粉絲unt=0.0;
double bin=1.0/2;
i=0;
for(j=0;j<flag;j++)
a=a*2.0+ch[j]-'0'; //zheng shu bu fen
int d=strlen(ch);
j=flag+1;
for(;j<d;j++)
{
買粉絲unt=買粉絲unt+(ch[j]-'0')*bin; //b改為ch
bin/=2.0;
if(j>Q)
break;
}
買粉絲ut<<"轉換后所得對應二進制為:";
買粉絲ut<<(a+買粉絲unt)<<endl;
買粉絲ut<<"請按任意鍵返回\n";
getch();
system("cls");
mainmenu();
return 0;
}
//2->16
void tran2_16()
{
買粉絲ut<<"請輸入二進制數據"<<endl; //缺點,對于整數的也要加小數點才行,盡快改進。
char ch[N];
cin>>ch;
ch2_16(ch);
}
string ch2_16(string ch)
{
string ab,cd;
int i=0;
while(ch[i])
{ if(ch[i]=='.')
break;
i++;
}
int 買粉絲unt=i;
int d=ch.length();
ab=ch.substr(0,i); //zhengshu
cd=ch.substr(i+1,d-i-1); //xiaoshu
int aa=4-i%4; //求出還要前面不補幾個0
int cc=4-(d-i-1)%4; //后面補0
for(i=0;i<aa;i++)
ab="0"+ab;
for(i=0;i<cc;i++)
cd=cd+"0";
string ef;
string ret;
for(i=0;i<cc+買粉絲unt;i=i+4)
{ ef=ab.substr(i,4);
ret+=B2H4bit(ef); //只能用+=這份符號,而不能+嗎??,keyi de
}
string dot;
for(i=0;i<d-買粉絲unt-1;i=i+4) //此時cd為新的字符串,從0 又開始計數。
{ ef=cd.substr(i,4);
dot+=B2H4bit(ef); //只能用+=這份符號,而不能+嗎??,ke yi de
}
買粉絲ut<<ret; //ret 此時已經結束輸出了。
買粉絲ut<<".";
買粉絲ut<<dot<<endl;
return ret;
}
//16->2222
int tran16_2()
{
買粉絲ut<<"請輸入十六進制字符\n"<<endl;
char ch[N];
string ret;
cin>>ch;
int d=strlen(ch);
int i=0, flag=-1;
while(ch[i])
{ if(ch[i]=='.')
{ flag=i; //flag記下小數點
break;}
i++;
}
int j;
for(j=0;j<flag;j++)
{ if (ch[j]=='0') ret+="0000";
else if (ch[j]=='1') ret+="0001";
else if (ch[j]=='2') ret+="0010";
else if (ch[j]=='3') ret+="0011";
else if (ch[j]=='4') ret+="0100";
else if (ch[j]=='5') ret+="0101";
else if (ch[j]=='6') ret+="0110";
else if (ch[j]=='7') ret+="0111";
else if (ch[j]=='8') ret+="1000";
else if (ch[j]=='9') ret+="1001";
else if (ch[j]=='A'||ch[j]=='a') ret+="1010";
else if (ch[j]=='B'||ch[j]=='b') ret+="1011";
else if (ch[j]=='C'||ch[j]=='c') ret+="1100";
else if (ch[j]=='D'||ch[j]=='d') ret+="1101";
else if (ch[j]=='E'||ch[j]=='e') ret+="1110";
else if (ch[j]=='F'||ch[j]=='f') ret+="1111";
} //就是這里出錯,導致了沒有小數點就不能處理整數部分了
if(flag!=-1)
ret=ret+".";
else
{ while(ch[j]!='\0')
{ if (ch[j]=='0') ret+="0000";
else if (ch[j]=='1') ret+="0001";
else if (ch[j]=='2') ret+="0010";
else if (ch[j]=='3') ret+="0011";
else if (ch[j]=='4') ret+="0100";
else if (ch[j]=='5') ret+="0101";
else if (ch[j]=='6') ret+="0110";
else if (ch[j]=='7') ret+="0111";
else if (ch[j]=='8') ret+="1000";
else if (ch[j]=='9') ret+="1001";
else if (ch[j]=='A'||ch[j]=='a') ret+="1010";
else if (ch[j]=='B'||ch[j]=='b') ret+="1011";
else if (ch[j]=='C'||ch[j]=='c') ret+="1100";
else if (ch[j]=='D'||ch[j]=='d') ret+="1101";
else if (ch[j]=='E'||ch[j]=='e') ret+="1110";
else if (ch[j]=='F'||ch[j]=='f') ret+="1111";
j++;
}
買粉絲ut<<"所得二進制為:";
買粉絲ut<<ret<<endl; //輸出整數,結束
買粉絲ut<<"請按任意鍵返回\n";
getch();
system("cls");
mainmenu();
return 0;
}
for(j=i;j<d;j++)
if (ch[j]=='0') ret+="0000";
else if (ch[j]=='1') ret+="0001";
else if (ch[j]=='2') ret+="0010";
else if (ch[j]
2024-07-19 19:21
2024-07-19 19:20
2024-07-19 19:13
2024-07-19 18:21
2024-07-19 17:08
2024-07-19 16:45