objective-c中的二进制转换算法

objective-c中的二进制转换算法,objective-c,algorithm,binary,Objective C,Algorithm,Binary,如何从字节或整数中获取特定位的值?我能找到的唯一类似的答案是字符串中的特定字符。我正在尝试将二进制数转换为十进制数,也许有一种更简单的方法来实现这一点,但我一直在想:将整数的2^位置从右侧乘以1或0,这取决于前面提到的位置处整数的值。有什么提示吗?获取字节或整数中位的值有多种方法。这完全取决于你的需要 NSString * binary = @"0011010"; long value = strtol([b UTF8String], NULL, 2); 一种方法是使用带位运算符的掩码 int

如何从字节或整数中获取特定位的值?我能找到的唯一类似的答案是字符串中的特定字符。我正在尝试将二进制数转换为十进制数,也许有一种更简单的方法来实现这一点,但我一直在想:将整数的2^位置从右侧乘以1或0,这取决于前面提到的位置处整数的值。有什么提示吗?

获取字节或整数中位的值有多种方法。这完全取决于你的需要

NSString * binary = @"0011010";
long value = strtol([b UTF8String], NULL, 2);
一种方法是使用带位运算符的掩码

int result = sourceValue & 8;    // 8 ->  0x00001000
// result non zero if the 4th bit from the right is ON.
您还可以一个接一个地移位位,然后读取(比如)最右边的位

for (int i = 0;  i < 8; i++)
    NSLog(@"Bit %d is %@", i, (sourceValue % 2 == 0) ? @"OFF" : @"ON");
    sourceValue = sourceValue >> 1;  // shift bits to the right for next loop.
}

有多种方法可以获取字节或整数中的位值。这完全取决于你的需要

一种方法是使用带位运算符的掩码

int result = sourceValue & 8;    // 8 ->  0x00001000
// result non zero if the 4th bit from the right is ON.
您还可以一个接一个地移位位,然后读取(比如)最右边的位

for (int i = 0;  i < 8; i++)
    NSLog(@"Bit %d is %@", i, (sourceValue % 2 == 0) ? @"OFF" : @"ON");
    sourceValue = sourceValue >> 1;  // shift bits to the right for next loop.
}

一个整数在另一个整数中是什么?虽然不是一个完全相同的问题,但你可能会发现这个问题很有帮助:另一个整数中的整数是什么?虽然不是一个完全相同的问题,但你可能会发现这个问题很有帮助:非常感谢!我对编程很陌生,你能解释一下吗?源值是int吗?源值%2==0是什么@OFF:@ON part do?在我的代码示例中,sourceValue是一个int,它包含要从中提取位的值。情况如何?值1:值2零件是一个零件。它类似于if语句。a%b是最合适的。它返回a/b部分的剩余部分。非常感谢!我对编程很陌生,你能解释一下吗?源值是int吗?源值%2==0是什么@OFF:@ON part do?在我的代码示例中,sourceValue是一个int,它包含要从中提取位的值。情况如何?值1:值2零件是一个零件。它类似于if语句。a%b是最合适的。它返回除法a/b的剩余部分。哇,我不知道这是如何工作的,但它让生活变得轻松多了。这是怎么回事?哇,我不知道这是怎么回事,但它让生活变得轻松多了。这是怎么回事?