私は16進数の文字列を目的の-cのバイナリ形式に変換する必要があります。 たとえば、7fefff78という16進数の文字列がある場合は、1111111111011111111111101111000に変換しますか? BR、 Suppi16進数を2進数のiphoneに変換するには
答えて
ニース再帰的なソリューションの累乗の数拠点の美しさ...あなたが先頭にゼロを必要とする場合には
NSString *hex = @"49cf3e";
NSUInteger hexAsInt;
[[NSScanner scannerWithString:hex] scanHexInt:&hexAsInt];
NSString *binary = [NSString stringWithFormat:@"%@", [self toBinary:hexAsInt]];
-(NSString *)toBinary:(NSUInteger)input
{
if (input == 1 || input == 0)
return [NSString stringWithFormat:@"%u", input];
return [NSString stringWithFormat:@"%@%u", [self toBinary:input/2], input % 2];
}
は、単に各桁を一つずつ変換
:小さなルックアップテーブルなど、0 -> 0000
、7 -> 0111
、F -> 1111
は、これは非常に簡潔に作ることができます。
別の基地:-)
手動変換?スイッチスタイルのステートメントにコード16の場合? :) –
@ジョナサン:ルックアップテーブルは、switch文ではなく、それ自体を示唆します。 –
この重複した質問にはプログラム的な回答があります:http://stackoverflow.com/questions/4618403/convert-binary-to-decimal-in-objective-c –
、例えば18のリターン00011000の代わり11000
-(NSString *)toBinary:(NSUInteger)input strLength:(int)length{
if (input == 1 || input == 0){
NSString *str=[NSString stringWithFormat:@"%u", input];
return str;
}
else {
NSString *str=[NSString stringWithFormat:@"%@%u", [self toBinary:input/2 strLength:0], input % 2];
if(length>0){
int reqInt = length * 4;
for(int i= [str length];i < reqInt;i++){
str=[NSString stringWithFormat:@"%@%@",@"0",str];
}
}
return str;
}
}
NSString *hex = @"58";
NSUInteger hexAsInt;
[[NSScanner scannerWithString:hex] scanHexInt:&hexAsInt];
NSString *binary = [NSString stringWithFormat:@"%@", [self toBinary:hexAsInt strLength:[hex length]]];
NSLog(@"binario %@",binary);
私はkerrek SBの答えに同意してこれを試しました。 私の仕事です。
+(NSString *)convertBinaryToHex:(NSString *) strBinary
{
NSString *strResult = @"";
NSDictionary *dictBinToHax = [[NSDictionary alloc] initWithObjectsAndKeys:
@"0",@"0000",
@"1",@"0001",
@"2",@"0010",
@"3",@"0011",
@"4",@"0100",
@"5",@"0101",
@"6",@"0110",
@"7",@"0111",
@"8",@"1000",
@"9",@"1001",
@"A",@"1010",
@"B",@"1011",
@"C",@"1100",
@"D",@"1101",
@"E",@"1110",
@"F",@"1111", nil];
for (int i = 0;i < [strBinary length]; i+=4)
{
NSString *strBinaryKey = [strBinary substringWithRange: NSMakeRange(i, 4)];
strResult = [NSString stringWithFormat:@"%@%@",strResult,[dictBinToHax valueForKey:strBinaryKey]];
}
return strResult;
}
- 1. 混乱C++で16進数を2進数に変換する
- 2. 文字列を16進数で16進数に変換する
- 3. Swiftの16進数/ 2進数の文字列変換
- 4. 10進数から2進数への変換(16ビット)
- 5. スウィフトで16進数を10進数に変換する
- 6. 16進数を10進数に変換するR
- 7. 文字列を16進数と16進数に変換する方法は?
- 8. erlangでバイナリ値を16進数に16進数に変換する方法
- 9. 16進数をasciiに変換する
- 10. Qt:QStringを16進数に変換する
- 11. バイナリを16進数に変換する
- 12. 16進数の文字列を16進数のデータに変換する
- 13. 10進数から16進数に変換するC++プログラム
- 14. ビットボード:16進数から16進数への変換
- 15. 10進整数を16進数に変換できますか?
- 16. 16進数を10進数に正しく変換します
- 17. キャストを使用して16進数から16進数に変換する
- 18. iphoneで16進数値をblobに変換する方法
- 19. 16進文字列を10進数に変換する
- 20. 16進数から10進数に変換
- 21. Rの10進数と16進数の変換方法は?
- 22. c#:16進数をGUIDに変換
- 23. 2進数を8進数に変換する方法は?
- 24. Visual Basic Calculator 16進数と2進数
- 25. 数式を2進数から10進数に変換する
- 26. EZGPIB:16進文字列を16進数に変換する(Delphi Scripted Pascal)
- 27. perl。 64ビットの2進数を10進数に変換する
- 28. Androidの16進数から10進数への変換
- 29. 10進数から16進数への文字列の変換
- 30. SQLデータベースの16進数値 - 10進数への変換
http://stackoverflow.com/questions/4618403/convert-binary-to-decimal-in-objective-c –
の重複私は1つが、反対ではなく、重複していることを確信しています。 –
@Carl:あなたは正しい。 –