Что делает C # при вводе буквы в int?
Мы реализуем шифрование для внешнего интерфейса. Владелец интерфейса предоставил документацию о том, как выполнить такое же шифрование на нашей стороне. Однако эта документация находится на C #, а мы работаем на PHP.
Большинство частей, которые мы понимаем, за исключением того, где они, кажется, типизируют хэш int. Их код гласит:
// 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];
}
В PHP при преобразовании буквы в int вы получаете 0 (int). Поскольку мы не можем себе представить, что это означает третье лицо, мы считаем, что C # делает что-то еще.
Does C# also cast to int 0, or possibly to a char?
Во-вторых, оригинальная строка hashString имеет длину 320. Это означает, что код будет создавать int длиной 320? В PHP у вас нет этой идеи резервирования памяти, как в C # здесь. Но когда мы пытаемся типизировать строку длиной 320 в int, мы получаем int, равное 19 'chars'. долго.
Does C# also create a shorter int when typecasting a really long 'number' in a string?