以十六进制输入一行数字

时间:2012-12-09 09:39:32

标签: input binary bit-manipulation hex

我有一行十六进制的二进制数字输入,然后在行上进行位操作。我这样做了: -

int main()
{

  vector < char > v1;
  vector < char > v2;
  char c;
  int i = 0;
  int j = 0;
  while((c = cin.get()) != ' ' || c!= '\0' || c!= '\n')
  {
    cin.putback(c);
    cin >> hex >> c;
    v1.push_back(0);
    v1[i] = v1[i] | c;
    i++;
  }

  while((c = cin.get()) != ' ' || c!= '\0' || c!= '\n')
  {
    cin.putback(c);
    cin >> hex >> c;
    v2.push_back(0);
    v2[j] = v1[j] | c;
    j++;
  }

  for(int i = 0; i < v1.size(); i++)
  cout << hex << v1[i]; //this I wrote to check whether I was doing the right thing

  return 0;
}

我提供了输入: -

eaa8b5f8aaf9174145bf43e1784b
bafa3ed18510abd11f4564e32133

但是,当我编译时没有输出,因为我使用的是在线编译器,它表示时间限制超出了我认为是段错误的指示。

编辑:我认为如果我使用一个充当整数但是1字节的数据类型我的问题将会解决

0 个答案:

没有答案