Subj : Converting 2 chars (bytes) to a short To : All From : Nightfox Date : Thu Jun 02 2011 09:18 am In C or C++, suppose there is an array of 2 chars: char charArray[2]; If one wanted to convert those 2 char values to a short, I can think of 2 ways to do it: - Method 1 - Bit shifting and ORing: short shortVal = ((charArray[1] << 8) | charArray[0]); - Another way I've tried this: short shortVal = (short)(charArray[1]); shortVal <<= 8; shortVal |= charArray[0]; - Method 2 - Using memcpy(): short shortVal = 0; memcpy((void*)&shortVal, (void*)charArray, 2); Is either way any better than the other? And does the bit-shift & OR method look fine? I'm asking because I'm working on some C++ code for reading & writing WAV files, and when using the bit-shift/OR method to read 16-bit audio samples, the audio sounds a bit distorted, but using the memcpy() method, it sounds fine. I'm not sure why that is, unless I'm not bit-shifting or ORing correctly in the first method.. Nightfox --- þ Synchronet þ Digital Distortion: digitaldistortionbbs.com .