fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. short rawtoshort(unsigned short raw, unsigned int bits)
  6. {
  7. unsigned short signmask=1<<(bits-1);
  8. return ((raw&signmask)?(-(short)signmask):0) + (raw&(signmask-1));
  9. }
  10.  
  11. int main() {
  12. cout<<rawtoshort(1023, 10);
  13. return 0;
  14. }
Success #stdin #stdout 0.01s 2680KB
stdin
Standard input is empty
stdout
-1