c# 데이터 직렬화 문제

public void WriteData(BitArray bitArray, int offset, int size, uint data)
{
try
{
for (int loop = 0; loop < size; loop++)
{
bitArray[loop + offset] = (data & 0x01) == 1 ? true : false;
data >>= 1;

                //MessageBoxEx.Show( bitArray[loop + offset].ToString() );
                
            }
        }
        catch { }

}

위와 같은 코드로 데이터 저장용 BitArray, 저장할 bit위치, 저장할 bit size, 저장할 data를 불러와서
BitArray에 저장되게 하고 싶습니다.

사용은 아래처럼 하고 싶습니다.

        BitArray BA = new BitArray(216*8);

        int offset = 0;

        WriteData(BA, offset, 8, 2); // DMI_SEQ2
        offset += 8;

        //여기서부터 안됨
        offset += 6;
       
        
        WriteData(BA, offset, 8, 255); // DMI_NID_STM
        offset += 8;
        
        WriteData(BA, offset, 4, 5); // DMI_FUNC
        offset += 4;

        offset += 8; // Reserved

제가 만든 코드가 작동이 제대로 안되는데 조언 좀 부탁드리겠습니다.

1개의 좋아요

작성해주신 코드는 비트가 반대로 들어가는 것 이외에는 잘 동작하는 것 같습니다. 어떻게 예상과 다르게 동작하는지 좀 더 구체적으로 알려주시면 답변에 도움이 될 것 같습니다.

2개의 좋아요