我不理解下面将int转换为byte的情况,下面的java代码可以打印如下的字节值
System.out.println("binary output :::"+ Byte.toString(bo [0]));
System.out.println("binary output :::"+ Byte.valueOf(bo [1]));
System.out.println("binary output :::"+ Byte.valueOf(bo [2]));
System.out.println("binary output :::"+ Byte.valueOf(bo [3]));
System.out.println("binary output :::"+ new String(bo));
binary output ::: 0
binary output ::: 0
binary output ::: 0
binary output ::: 1
binary output ::: squaresquaresquaresquare(4 square chars) - 二进制数据
但当我将相同数据的目标c代码制作成最终的NSString时,它也打印为"0001"但不是二进制格式(4个方格)
我需要二进制格式的NSString如何以二进制格式而不是"0001"打印NSString
请帮忙
如果可读性是一个问题,那么让我建议一个快速例程,它将把一个int变成一串字符串为"1"和"0"字符的半字节组:
NSString *binaryRepresentation(int value)
{
long nibbleCount = sizeof(value) * 2;
NSMutableString *bitString = [NSMutableString stringWithCapacity:nibbleCount * 5];
for (int index = 4 * nibbleCount - 1; index >= 0; index--)
{
[bitString appendFormat:@"%i", value & (1 << index) ? 1 : 0];
if (index % 4 == 0)
{
[bitString appendString:@" "];
}
}
return bitString;
}
Run Code Online (Sandbox Code Playgroud)
所以
binaryRepresentation(1)返回0000 0000 0000 0000 0000 0000 0000 0001
并
binaryRepresentation(1423)返回0000 0000 0000 0000 0000 0101 1000 1111
| 归档时间: |
|
| 查看次数: |
7086 次 |
| 最近记录: |