How to convert a signed binary two's complement:
0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001(2)
to an integer in decimal system (in base 10)
1. Is this a positive or a negative number?
In a signed binary two's complement, first bit (the leftmost) indicates the sign,
1 = negative, 0 = positive.
0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001 is the binary representation of a positive integer, on 64 bits (8 Bytes).
2. Get the binary representation in one's complement:
* Run this step only if the number is negative *
Subtract 1 from the binary initial number:
* Not the case *
3. Get the binary representation of the positive (unsigned) number:
* Run this step only if the number is negative *
Flip all the bits in the signed binary one's complement representation (reverse the digits) - replace the bits set on 1 with 0s and the bits on 0 with 1s:
* Not the case *
4. Map the unsigned binary number's digits versus the corresponding powers of 2 that their place value represent:
263
0 262
0 261
0 260
0 259
0 258
0 257
0 256
0 255
0 254
0 253
0 252
0 251
0 250
0 249
0 248
0 247
0 246
0 245
0 244
0 243
0 242
0 241
0 240
1 239
0 238
0 237
1 236
0 235
0 234
1 233
0 232
0 231
1 230
1 229
1 228
1 227
1 226
0 225
0 224
0 223
0 222
0 221
0 220
0 219
0 218
0 217
0 216
0 215
0 214
0 213
0 212
0 211
0 210
0 29
0 28
0 27
0 26
0 25
0 24
0 23
0 22
0 21
0 20
1
5. Multiply each bit by its corresponding power of 2 and add all the terms up:
0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001(2) =
(0 × 263 + 0 × 262 + 0 × 261 + 0 × 260 + 0 × 259 + 0 × 258 + 0 × 257 + 0 × 256 + 0 × 255 + 0 × 254 + 0 × 253 + 0 × 252 + 0 × 251 + 0 × 250 + 0 × 249 + 0 × 248 + 0 × 247 + 0 × 246 + 0 × 245 + 0 × 244 + 0 × 243 + 0 × 242 + 0 × 241 + 1 × 240 + 0 × 239 + 0 × 238 + 1 × 237 + 0 × 236 + 0 × 235 + 1 × 234 + 0 × 233 + 0 × 232 + 1 × 231 + 1 × 230 + 1 × 229 + 1 × 228 + 1 × 227 + 0 × 226 + 0 × 225 + 0 × 224 + 0 × 223 + 0 × 222 + 0 × 221 + 0 × 220 + 0 × 219 + 0 × 218 + 0 × 217 + 0 × 216 + 0 × 215 + 0 × 214 + 0 × 213 + 0 × 212 + 0 × 211 + 0 × 210 + 0 × 29 + 0 × 28 + 0 × 27 + 0 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 1 × 20)(10) =
(0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 099 511 627 776 + 0 + 0 + 137 438 953 472 + 0 + 0 + 17 179 869 184 + 0 + 0 + 2 147 483 648 + 1 073 741 824 + 536 870 912 + 268 435 456 + 134 217 728 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1)(10) =
(1 099 511 627 776 + 137 438 953 472 + 17 179 869 184 + 2 147 483 648 + 1 073 741 824 + 536 870 912 + 268 435 456 + 134 217 728 + 1)(10) =
1 258 291 200 001(10)
6. If needed, adjust the sign of the integer number by the first digit (leftmost) of the signed binary:
0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001(2) = 1 258 291 200 001(10)
Conclusion:
Number 0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001(2) converted from signed binary two's complement representation to an integer in decimal system (in base 10):
0000 0000 0000 0000 0000 0001 0010 0100 1111 1000 0000 0000 0000 0000 0000 0001(2) = 1 258 291 200 001(10)
Spaces used to group digits: for binary, by 4; for decimal, by 3.
More operations of this kind:
Convert signed binary two's complement numbers to decimal system (base ten) integers
Entered binary number length must be: 2, 4, 8, 16, 32, or 64 - otherwise extra bits on 0 will be added in front (to the left).