Tôi đang cố gắng tìm ra cách chuyển đổi NSInteger, nói 56, thành NSString là biểu diễn nhị phân của giá trị ban đầu (int). Có lẽ ai đó biết một kỹ thuật định dạng có thể chấp nhận 56 và trả về "111000" trong Objective C. Cảm ơn tất cả.Làm thế nào để chuyển đổi NSInteger thành giá trị nhị phân (chuỗi)
Trả lời
Không có toán tử định dạng được tích hợp để thực hiện điều đó. Nếu bạn muốn chuyển đổi nó thành một chuỗi thập lục phân, bạn có thể làm:
NSString *str = [NSString stringWithFormat:@"%x", theNumber];
Để chuyển đổi nó thành một chuỗi nhị phân, bạn sẽ phải xây dựng nó cho mình:
NSMutableString *str = [NSMutableString stringWithFormat:@""];
for(NSInteger numberCopy = theNumber; numberCopy > 0; numberCopy >>= 1)
{
// Prepend "0" or "1", depending on the bit
[str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}
Gần:
-(void)someFunction
{
NSLog([self toBinary:input]);
}
-(NSString *)toBinary:(NSInteger)input
{
if (input == 1 || input == 0) {
return [NSString stringWithFormat:@"%d", input];
}
else {
return [NSString stringWithFormat:@"%@%d", [self toBinary:input/2], input % 2];
}
}
Nếu đầu vào bằng 0 thì sao? – epatel
Điều này không thành công nếu đầu vào là 0 (hoặc trong thực tế nếu bit cuối cùng là 0), và nó cũng phân bổ và deallocates N đối tượng chuỗi, trong đó N là số bit trong số. Không hiệu quả lắm. –
Do đó gần đúng. Nhưng bắt tốt. –
NSString * binaryStringFromInteger(int number)
{
NSMutableString * string = [[NSMutableString alloc] init];
int spacing = pow(2, 3);
int width = (sizeof(number)) * spacing;
int binaryDigit = 0;
int integer = number;
while(binaryDigit < width)
{
binaryDigit++;
[string insertString:((integer & 1) ? @"1" : @"0")atIndex:0];
if(binaryDigit % spacing == 0 && binaryDigit != width)
{
[string insertString:@" " atIndex:0];
}
integer = integer >> 1;
}
return string;
}
tôi bắt đầu từ phiên bản Adam Rosenfield, và sửa đổi để:
- thêm khoảng trống giữa byte
- xử lý ký số nguyên
Mẫu đầu ra:
-7 11111111 11111111 11111111 11111001
7 00000000 00000000 00000000 00000111
-1 11111111 11111111 11111111 11111111
2147483647 01111111 11111111 11111111 11111111
-2147483648 10000000 00000000 00000000 00000000
0 00000000 00000000 00000000 00000000
2 00000000 00000000 00000000 00000010
-2 11111111 11111111 11111111 11111110
- 1. Làm thế nào để chuyển đổi một chuỗi nhị phân thành một giá trị float?
- 2. chuyển đổi giá trị kép thành giá trị nhị phân
- 3. Làm thế nào để chuyển đổi giá trị chuỗi nhị phân để thập phân
- 4. Làm thế nào để chuyển đổi 'chuỗi nhị phân' thành chuỗi bình thường trong Python3?
- 5. Làm thế nào để chuyển đổi NSIndexPath thành NSInteger?
- 6. Làm thế nào để bạn chuyển đổi một chuỗi thành ascii thành nhị phân trong C#?
- 7. Chuyển đổi chuỗi thập lục phân thành chuỗi nhị phân
- 8. Chuyển đổi một byte thành chuỗi nhị phân trong C#
- 9. Làm thế nào để chuyển đổi một chuỗi hoặc số nguyên thành nhị phân trong Ruby?
- 10. Làm cách nào để chuyển đổi chuỗi nhị phân thành một số trong Perl?
- 11. Chuyển đổi chuỗi nhị phân thành bigint trong MySQL?
- 12. Cách nhanh nhất để chuyển đổi chuỗi thành nhị phân?
- 13. Chuyển đổi chuỗi 1 và 0 thành giá trị nhị phân
- 14. Làm cách nào để chuyển đổi NSInteger thành NSTimeInterval
- 15. Chuyển đổi chuỗi nhị phân thành số nguyên
- 16. Chuyển đổi NSInteger thành NSIndexpath
- 17. Làm cách nào để chuyển đổi giá trị Integer thành giá trị thập phân?
- 18. Chuyển đổi chuỗi nhị phân thành mảng byte
- 19. Chuyển đổi NSString thành NSInteger?
- 20. Làm thế nào để chuyển đổi số nguyên thành vector nhị phân?
- 21. Chuyển đổi chuỗi đại diện nhị phân của một byte với giá trị nhị phân thực tế bằng Python
- 22. Chuyển đổi tệp nhị phân thành chuỗi Base64
- 23. Làm thế nào để giải mã chuỗi mã hóa "nhị phân" thành đệm nhị phân thô?
- 24. SQL Server Chuyển đổi số nguyên thành chuỗi nhị phân
- 25. java: chuyển đổi chuỗi nhị phân thành int
- 26. Trong python, làm thế nào để chuyển đổi một chuỗi ascii hex thành chuỗi nhị phân nội bộ thô?
- 27. Chuyển đổi NSNumber để NSInteger
- 28. Làm thế nào để chuyển đổi một giá trị int thành chuỗi trong Go?
- 29. Làm thế nào để chuyển đổi chuỗi giá trị thành Enum trong Java?
- 30. Làm thế nào để chuyển đổi các giá trị null thành chuỗi rỗng trong mảng php?
Bạn nhận được một trong những lỗi màu vàng nếu bạn không làm 'NSMutableString * str = [NSMutableString stringWithFormat : @ ""]; ' –