के लिए बिट मैनिपुलेशन लाइब्रेरी क्या कोई एएनएसआई सी के लिए एक अच्छा बिट मैनिपुलेशन लाइब्रेरी जानता है? Jovial में तरह तरहएएनएसआई सी
// I assume LSB has index of 0
int a = 0x123;
setBits(&a,2,5, 0xFF);
printf("0x%x"); // should be 0x13F
int a = 0x123;
printf("0x%x",getBits(&a,2,5)); // should be 0x4
char a[] = {0xCC, 0xBB};
char b[] = {0x11, 0x12};
copyBits(a,/*to=*/4,b,/*from=*/,4,/*lengthToCopy=*/8);
// Now a == {0x1C, 0xB2}
वहाँ एक समान पुस्तकालय bitfile कहा जाता है कुछ एक चर में विशिष्ट बिट्स सेट करने के लिए, है, लेकिन यह प्रत्यक्ष स्मृति में गड़बड़ी का समर्थन नहीं लगती क्या मैं मूल रूप से की जरूरत है,, की क्षमता है। यह केवल स्ट्रीम स्ट्रीम करने के लिए बिट्स को खिलाने का समर्थन करता है।
लिखना मुश्किल नहीं है, लेकिन अगर कुछ परीक्षण किया गया है - तो मैं पहिया को फिर से नहीं चलाऊंगा।
शायद यह पुस्तकालय बड़ी लाइब्रेरी (bzip2
, gzip
सामान्य संदिग्ध हैं) के हिस्से के रूप में मौजूद है?
http://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit-in-c यदि आपको जरूरी है तो कार्यों में जवाब लपेटें। – dmckee
@dmckee उत्तर में 'copyBits' funtion शामिल नहीं है। और कार्यों में चीजों को लपेटना आम तौर पर "जरूरी" नहीं है, लेकिन यह अच्छी तरह से संरचित कोड के लिए जरूरी है। –