मेरे पास एक हस्ताक्षरित int संख्या (2 बाइट) है और मैं इसे बिना हस्ताक्षरित चार प्रकार में परिवर्तित करना चाहता हूं। मेरी खोज से, मुझे लगता है कि ज्यादातर लोग निम्न कार्य करने की सलाह देते हैं:सी - हस्ताक्षरित int सरणी रूपांतरण के लिए हस्ताक्षरित int
unsigned int x;
...
unsigned char ch = (unsigned char)x;
सही दृष्टिकोण है? मैं पूछता हूं क्योंकि हस्ताक्षरित चार 1 बाइट है और हमने 2 बाइट डेटा से 1 बाइट तक कास्ट किया है।
किसी डेटा हानि को रोकने के लिए, मैं बिना हस्ताक्षरित char [] की एक सरणी बनाना चाहता हूं और व्यक्तिगत बाइट को सरणी में सहेजना चाहता हूं। मैं निम्नलिखित पर अटक कर रहा हूँ:
unsigned char ch[2];
unsigned int num = 272;
for(i=0; i<2; i++){
// how should the individual bytes from num be saved in ch[0] and ch[1] ??
}
इसके अलावा, कैसे हम [2] अहस्ताक्षरित int वापस करने के लिए अहस्ताक्षरित चार में बदल सकते हैं।
बहुत बहुत धन्यवाद।
के संभावित डुप्लिकेट [लघु हस्ताक्षर किए में C++ बाइट के लिए] (http://stackoverflow.com/questi ऑन/1028810 9/हस्ताक्षरित-शॉर्ट-टू-बाइट-इन-सी) –