unsigned char *adata = (unsigned char*)malloc(500*sizeof(unsigned char));
unsigned char *single_char = adata+100;
मैं 1.10 (int) के बीच मानों का प्रतिनिधित्व करने के लिए एकल_चर में पहले चार बिट्स कैसे बदलूं?बिना हस्ताक्षर किए गए चार में 4 बिट्स कैसे बदलें?
सवाल टीसीपी हेडर संरचना से आया था:
Data Offset: 4 bits
The number of 32 bit words in the TCP Header. This indicates where
the data begins. The TCP header (even one including options) is an
integral number of 32 bits long.
आमतौर पर यह 4..5 का मूल्य है, चार मूल्य 0xA0 की तरह है।
टीसीपी हेडर के विशिष्ट मामले में में किसी को मदद करता है, इस ओकटेट के निचले 4 बिट्स आरक्षित हैं और शून्य होना चाहिए। – caf
आह ठीक है, तो आपका समाधान बेहतर है :) – GWW
@GWW, अंत में, यह आपका समाधान था जो मेरे लिए काम करता था। लेकिन यह कभी-कभी अजीब मूल्य निर्धारित करता है .. (उदाहरण के लिए, एकल_char 0x80 के बजाय हेक्स 0x86 बन जाता है)। –