मैं यह जांचना चाहता हूं कि char
में 8 बिट्स int
के 32 बिट्स का एक सबस्ट्रिंग हैं या नहीं।सी - कैसे जांचें कि 8 बिट्स 32 बिट में हैं या नहीं?
for (int i = 0; i < 25; i++) {
int tmp = a;
tmp <<= 24;
tmp >>= 24;
int res = b^tmp;
res <<= 24;
res >>= 24;
if (res == 0)
return 1;
else
a >>= 1;
}
return 0;
मैं इसे और अधिक कुशल हैं:
a = 0110 1010 1011 0100 0000 0110 1010 0010 (32 bit int)
b = 0100 0000 (8 bit char)
is_in(a, b) --> true
यहाँ मेरी कोड है। कोई विचार?
'A', या केवल बाइट-सीमाओं पर' "में" कहीं भी हो b' कर सकते हैं? और आपने अभी तक क्या प्रयास किया है? आपको अपने कोड के साथ क्या समस्याएं आईं? –
कीवर्ड: शिफ्ट, मास्क और तुलना करें। '<<' or '>> 'ऑपरेटर और' & 'ऑपरेटर का उपयोग करें। समाधान के साथ आओ और फिर कठिनाइयों के दौरान प्रश्न पूछें। –
यदि 8 बिट्स केवल 32 बिट int की निर्धारित स्थिति पर हो सकते हैं, तो आप सभी को और संचालन के साथ अन्य सभी को शून्य कर सकते हैं और सीधे मानों की तुलना कर सकते हैं। – Magisch