Co robi C # podczas pisania listu do int?
Musimy zaimplementować szyfrowanie zewnętrznego interfejsu. Właściciel interfejsu przekazał dokumentację dotyczącą tego, jak wstępnie wykonać to samo szyfrowanie po naszej stronie. Jednak ta dokumentacja jest w C # i pracujemy w PHP.
Większość części, które rozumiemy, z wyjątkiem miejsc, w których wydają się wpisywać skrót do int. Ich kod brzmi:
// hashString exists and is a md5 a like string
int[] keyBuffer = new int[hashString.length];
for (int i=0; i<hashString.length; i++) {
keyBuffer[i] = (int)hashString[i];
}
W PHP, rzucając literę jako int, otrzymujesz 0 (int). Ponieważ nie wyobrażamy sobie tego, co oznacza strona trzecia, wierzymy, że C # robi coś innego.
Czy C # także rzutuje na int 0 lub ewentualnie na char?
Po drugie, oryginalny hashString ma długość 320. Oznacza to, że kod będzie tworzył int, który ma 320 długości? W PHP nie masz takiego pomysłu na rezerwowanie pamięci, jak robi to C #. Ale gdy próbujemy wpisać ciąg 320 znaków do int, otrzymujemy int, który ma długość 19 znaków.
Czy C # tworzy również krótszy int, kiedy wpisuje naprawdę długi „numer” w łańcuchu?