сдвиг со знаком - PullRequest
       1

сдвиг со знаком

2 голосов
/ 15 октября 2011

Как я могу реализовать сдвиг со знаком в C ++?Например, этот код

#include<iostream>
using namespace std;

int bit_number( int x){
 int total=0;
 while(x){
  total++;
  x>>=1;
 }

 return total;
}

int main(){
 int x=10;
 //cout<<bit_number(x)<<endl;
 int a=bit_number(x);
 int b=2*a;
 x<<=(b-a);
 x=x>>>(b-a);

 while(x!=0){
  int k=x%2;
  x=x>>1;
  cout<<k<<endl;
 }

 return 0;
}

показывает мне эту ошибку:

Error   1   error C2059: syntax error : '>' c:\users\datuashvili\documents\visual studio 2010\projects\binst\binst\binst.cpp    19  1   Binst

Я знаю, что в Java есть сдвиг со знаком, как насчет C ++?Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 15 октября 2011

C ++ «знает» смещение для целых чисел со знаком, однако результат определяется реализацией.

В C ++ >> обозначает сдвиг (для типов без знака и со знаком).Таким образом, компилятор интерпретирует ваш >>> как >>, за которым следует > (или наоборот).

1 голос
/ 15 октября 2011

У вас 3 >>> в строке 19 (смотрите сообщение об ошибке)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...