Last active
January 3, 2022 06:35
-
-
Save theoknock/5f7c4480a301afd5ffdb4304b7111c4d to your computer and use it in GitHub Desktop.
Iterating a set of bits (bit mask, bit field). Useful for indexing arrays using bit values without actually using bit values as index values
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
typedef NS_OPTIONS(uint8_t, CaptureDeviceConfigurationControlPropertyBit) { | |
CaptureDeviceConfigurationControlPropertyBitTorchLevel = 1<< 0, | |
CaptureDeviceConfigurationControlPropertyBitLensPosition = 1<< 1, | |
CaptureDeviceConfigurationControlPropertyBitExposureDuration = 1<< 2, | |
CaptureDeviceConfigurationControlPropertyBitISO = 1<< 3, | |
CaptureDeviceConfigurationControlPropertyBitZoomFactor = 1<< 4, | |
}; | |
typedef CaptureDeviceConfigurationControlPropertyBit CaptureDeviceConfigurationControlPropertyBitMask; | |
CaptureDeviceConfigurationControlPropertyBitMask mask = (CaptureDeviceConfigurationControlPropertyBitTorchLevel | | |
CaptureDeviceConfigurationControlPropertyBitLensPosition| | |
CaptureDeviceConfigurationControlPropertyBitExposureDuration| | |
CaptureDeviceConfigurationControlPropertyBitISO| | |
CaptureDeviceConfigurationControlPropertyBitZoomFactor); | |
do{ | |
printf("mask\t==\t%d\n", (CaptureDeviceConfigurationControlPropertyBitMask)mask); | |
} while((mask ^= mask & (0- mask)) != 0.0); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment