我需要編寫一個Objective-C函數將十進制整數轉換爲基數爲26的字符串,如下例所示。並且還可以逆轉它。ObjC:使用數字字母A-Z將一個十進制數轉換爲基數爲26的字符串
0 = A
1 = B
2 = C
...
25 = Z
26 = AA
27 = AB
28 = AC
等
我需要編寫一個Objective-C函數將十進制整數轉換爲基數爲26的字符串,如下例所示。並且還可以逆轉它。ObjC:使用數字字母A-Z將一個十進制數轉換爲基數爲26的字符串
0 = A
1 = B
2 = C
...
25 = Z
26 = AA
27 = AB
28 = AC
等
我創建了一個recurcivefunction做到這一點
+ (NSString *)alphaValueForNum:(int)num {
NSDictionary *charInfo = @{@"A": @0,
@"B": @1,
@"C": @2,
@"D": @3,
@"E": @4,
@"F": @5,
@"G": @6,
@"H": @7,
@"I": @8,
@"J": @9,
@"K": @10,
@"L": @11,
@"M": @12,
@"N": @13,
@"O": @14,
@"P": @15,
@"Q": @16,
@"R": @17,
@"S": @18,
@"T": @19,
@"U": @20,
@"V": @21,
@"W": @22,
@"X": @23,
@"Y": @24,
@"Z": @25};
NSString *letter = [[charInfo allKeysForObject:[NSNumber numberWithInt:(num % 26)]] lastObject]; // ((num % 26));
int remain = floor(num/26);
return (remain > 0) ? [NSString stringWithFormat:@"%@%@",[self alphaValueForNum:(remain-1)],letter] : letter;
}
似乎要創建的26.所以其位號沒有什麼不同與基地2或小數的基地10基數的數字,但缺少0模型缺乏
每個數字都有一個電源基座,從右到左。在其位:
2^3 2^2 2^1 2^0
1 0 1 1
現在mulitply與電源和總和的所有值位:
2^3=8x1=8
2^2=4x0=0
2^1=2x1=2
2^0=1x1=1
所以1011十進制值爲11
同樣的,你的基地(假設A = 0,Z = 25)
26^2 26^1 26^0
b z z
26^2=676*b(1) =676
26^1=26 *z(25)=650
26^0=1 *z(25)=25
所以BZZ的值= 1351
現在你有基礎,應該能夠創建你的方法;-)
佑能顯示烏爾試圖代碼 –
會是什麼? = ABA –
ABA不是下一個值,它是一個樣本值。 –