#include <iostream>

using namespace std;

short rawtoshort(unsigned short raw, unsigned int bits)
{
    unsigned short signmask=1<<(bits-1);
    return ((raw&signmask)?(-(short)signmask):0) + (raw&(signmask-1));
}

int main() {
    cout<<rawtoshort(1023, 10);
	return 0;
}