将输入的数字字符串以8bit,BCD编码输出。
如果输入字符串的位数为奇数,则在最高位补零。
“1234”
4bit位表示: 0001 0010 0011 0100 BCD编码为 1 2 3 4
若以8bit表示:0001 0010 0011 0100 BCD编码为 18 52
“123”
4bit位表示: 0001 0010 0011 BCD编码为 1 2 3
若以8bit表示:0000 0001 0010 0011 BCD编码为 1 35
例子:
输入:1234 输出:1852
如果输入字符串的位数为奇数,则在最高位补零。
“1234”
4bit位表示: 0001 0010 0011 0100 BCD编码为 1 2 3 4
若以8bit表示:0001 0010 0011 0100 BCD编码为 18 52
“123”
4bit位表示: 0001 0010 0011 BCD编码为 1 2 3
若以8bit表示:0000 0001 0010 0011 BCD编码为 1 35
例子:
输入:1234 输出:1852
输入: 123 输出:135
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
string strEven;
cin>>str;
if((str.size()&0x01)==1)
{
strEven=str.substr(1,str.size()-1);
cout<<str[0];
}
else
{
strEven=str;
}
for(size_t i=0;2*i<strEven.size();i++)
{
cout<<(strEven[2*i]-'0')*16+strEven[2*i+1]-'0';
}
cout<<endl;
system("pause");
return 0;
}