twos-complement
Co to jest "dopełnienie 2"?
Jestem na kursie systemów komputerowych i miałem zmagania , częściowo, z dwójką . Chcę to zrozumieć, ale wszystko, co przeczy ... nych i odwrotnie), operacje bitowe i operacje bitowe.
Liczę na jasną i zwięzłą definicję , łatwo zrozumiałą dla programisty.
Dlaczego preferujemy dopełnienie dwójki zamiast znaku i wielkości dla liczb podpisanych?
Jestem tylko ciekaw, czy jest jakiś powód, dla którego aby reprezentować -1 w binarnym, używa się dopełniacza two: przerzucan ... e jest binarne 1 z pierwszym bitem jako znacznikiem ujemnym.
Zastrzeżenie: nie polegam na arytmetyce binarnej w mojej pracy!
W jaki sposób liczby całkowite są wewnętrznie reprezentowane na poziomie bitów w Javie?
Próbuję zrozumieć, w jaki sposób Java przechowuje wewnętrznie liczbę całkowitą. Wiem, że wszystkie Java primitive integers są ... są przechowywane w dwóch dopełnienie i jedna odpowiedź mówi, że tylko liczby ujemne są przechowywane jako dopełnienie dwóch.
~x + ~ y = = ~ (x + y) jest zawsze fałszywe?
Czy ten kod zawsze ocenia się na false? Obie zmienne są dopełnieniem dwóch podpisanych intów.
~x + ~y == ~(x + y)
Wydaje m ... tawienie równania, aby znaleźć rozwiązania warunku?
Czy Zamiana jednego na drugi spowoduje podstępny błąd w moim programie?
Operator bitowy not
Dlaczego operacja bitowa (~0); wypisuje -1 ? W systemie binarnym Nie 0 powinno być 1 . dlaczego ?
Dlaczego -(-2147483648) = - 2147483648 w 32-bitowej maszynie?
Myślę, że pytanie jest oczywiste, myślę, że prawdopodobnie ma to coś wspólnego z przepełnieniem, ale nadal nie do końca rozumiem. Co się dzieje, bitowo, pod maską?
Dlaczego -(-2147483648) = -2147483648 (przynajmniej podczas kompilacji w C)?
Jak memset inicjalizuje tablicę liczb całkowitych przez -1?
Strona Man mówi o memset:
#include <string.h>
void *memset(void *s, int c, size_t n)
Funkcja memset() wypełn ... na w 1 bajcie (może się mylę w tym kontekście). Ale w jaki sposób można zainicjalizować b za pomocą -1 (wartość 4 bajtów)?
dlaczego -3= = ~2 W C#
Nie mogę zrozumieć. Dlaczego wyjście jest "równe"
Kod:
if (-3 == ~2)
Console.WriteLine("equal");
else
Console.WriteLine("not equal");
Wyjście:
equal
podpisz zmiany podczas przechodzenia z int do float i z powrotem
Rozważ następujący kod, który jest SSCCE mojego rzeczywistego problemu:
#include <iostream>
int roundtrip(int x)
{ ... t; 2147483520
2147483584 -> 2147483647
Czy zespół g++ naprawił w międzyczasie błąd, czy oba wyjścia są w pełni poprawne?