Binar cu semn în complement față de unu 1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101(2) în întreg în sistem zecimal (în baza 10) = ?
1. Număr pozitiv sau negativ?
Într-un binar cu semn în complement față de unu, primul bit (cel mai din stânga) indică semnul,
1 = negativ, 0 = pozitiv.
1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101 este reprezentarea binară a unui întreg negativ, pe 64 biți (8 Octeți).
2. Obține reprezentarea binară a numărului pozitiv:
* Execută acest pas doar dacă numărul e negativ *
Înlocuiește biții setați pe 1 cu 0 și biții de pe 0 cu 1 în reprezentarea binară cu semn în complement față de unu:
!(1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101) = 0000 0000 0000 0000 0000 0000 1100 1001 0101 0000 1011 1001 0010 0000 0001 0010
3. Mapează digiții numărului binar fără semn cu puterile lui 2 corespunzătoare ordinului de mărime:
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
0 239
1 238
1 237
0 236
0 235
1 234
0 233
0 232
1 231
0 230
1 229
0 228
1 227
0 226
0 225
0 224
0 223
1 222
0 221
1 220
1 219
1 218
0 217
0 216
1 215
0 214
0 213
1 212
0 211
0 210
0 29
0 28
0 27
0 26
0 25
0 24
1 23
0 22
0 21
1 20
0
4. Înmulțește fiecare bit cu puterea lui 2 corespunzătoare, apoi însumează termenii:
0000 0000 0000 0000 0000 0000 1100 1001 0101 0000 1011 1001 0010 0000 0001 0010(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 + 0 × 240 + 1 × 239 + 1 × 238 + 0 × 237 + 0 × 236 + 1 × 235 + 0 × 234 + 0 × 233 + 1 × 232 + 0 × 231 + 1 × 230 + 0 × 229 + 1 × 228 + 0 × 227 + 0 × 226 + 0 × 225 + 0 × 224 + 1 × 223 + 0 × 222 + 1 × 221 + 1 × 220 + 1 × 219 + 0 × 218 + 0 × 217 + 1 × 216 + 0 × 215 + 0 × 214 + 1 × 213 + 0 × 212 + 0 × 211 + 0 × 210 + 0 × 29 + 0 × 28 + 0 × 27 + 0 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 0 × 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 + 0 + 549 755 813 888 + 274 877 906 944 + 0 + 0 + 34 359 738 368 + 0 + 0 + 4 294 967 296 + 0 + 1 073 741 824 + 0 + 268 435 456 + 0 + 0 + 0 + 0 + 8 388 608 + 0 + 2 097 152 + 1 048 576 + 524 288 + 0 + 0 + 65 536 + 0 + 0 + 8 192 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 16 + 0 + 0 + 2 + 0)(10) =
(549 755 813 888 + 274 877 906 944 + 34 359 738 368 + 4 294 967 296 + 1 073 741 824 + 268 435 456 + 8 388 608 + 2 097 152 + 1 048 576 + 524 288 + 65 536 + 8 192 + 16 + 2)(10) =
864 642 736 146(10)
5. Dacă e nevoie, ajustează semnul numărului întreg în funcție de primul digit (cel mai din stânga) al numărului binar cu semn:
1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101(2) = -864 642 736 146(10)
Numărul 1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101(2) convertit din binar cu semn în reprezentarea în complement față de unu în întreg în sistem zecimal (în baza 10):
1111 1111 1111 1111 1111 1111 0011 0110 1010 1111 0100 0110 1101 1111 1110 1101(2) = -864 642 736 146(10)
Spațiile folosite pentru a grupa digiți: pentru binar, câte 4; pentru zecimal, câte 3.
Mai multe operații de acest tip:
Convertește numere binare cu semn în complement față de unu în întregi în sistem zecimal (baza zece)
Lungimea numărului binar introdus trebuie să fie 2, 4, 8, 16, 32, sau 64 - altfel biți pe 0 vor fi adăugați în față (la stânga).