В С#
string p = "help";
byte myByte = (byte)p[1];
В С# байт нетзнаковое 8-битное целое число (0-255). Как достичь цели в Objective C?
Фактическое требование состоит в том, что я хочу преобразовать следующий сегмент кода, который записывается в С# в объект c. Часть, которую я не могу понять, - это преобразование байтов.
static Int64 Encrypt(string p)
{
Int64 c = 31;
for (int i = 0; i < p.Length; i++)
c = c * 47 + (byte)p[i] % 97;
return c;
}
Равновесие для С#:
Примечание. Все символы 8-бит.
int64_t Encrypt(NSString *p) {
const char *cString = [p cStringUsingEncoding: NSASCIIStringEncoding];
unsigned long length = strlen(cString);
int64_t c = 31;
for (int i = 0; i < length; i++)
c = c * 47 + cString[i] % 97;
return c;
}
NSString *p = @"help";
NSLog(@"p: %@", p);
int64_t c = Encrypt(p);
NSLog(@"c: lld", c);
Выход NSLog:
p: help
c: 152006240
char
в качестве байта.