我有一個字符串:如何使用C++將一串二進制數轉換爲其帶符號的十進制表示?
1010
字符串的無符號表示出來的是10後做:
string immediateValue = "1010";
char immediateChars[5];
strcpy(immediateChars, immediateValue.c_str());
char * ptr;
long parsedInteger = strtol(immediateChars, &ptr, 2);
據我瞭解strtol將可以用來只得到無符號表示。有沒有辦法讓2的補碼值爲-6?
'long tc = parsedInteger | (long(-1)<< immediateValue.length());' –
@ChristopherOicles'long(-1)'應該寫成'-1L' –
@LưuVĩnhPhúc我想明確表示它是相同的類型作爲目標 - 如果我只是使用了一個後綴,那麼OP很容易忽略這個後綴(當然,他會遇到'long long'的問題 - 使用g ++的函數cast會失敗)。 –