2016-08-24 2 views
0

그렇지 않으면 CPU가 주소를 지정할 수 없기 때문에 RAM에서 부울 1 바이트를 들었습니다. 우리가 C#에서 그것을 직렬화 할 때 부울 1 비트 궁금하다?우리가 serialize하고 디스크에 저장할 때 부울 크기가 1 비트입니까?

+0

아니요. 7 비트 남았으므로 다른 bool을 제외하고는 사용할 수 없다고 생각하면 가치가 없습니다. 그리고 클래스에서 8 개의 bool 필드를 갖는 것은 누구도 권장하지 않는 코딩 스타일이 될 것입니다. –

+0

주요 아이디어는 문자열을 저장하는 것입니다. 내 문자열에는 영어 문자와 0-9가 포함되어 있습니다. "a"= 0, ....., "9"= 30과 같은 사전을 사용하려고 생각했습니다.이 경우 2^5 = 5 비트입니다. 문자열의 모든 문자를보고 표현을 찾은 다음 2- 기반으로 변환 한 다음 비트로 저장 하시겠습니까? 나는 아이디어가 잘되었다고 생각한다 : D. 내가 250.000 개체를 가지고 * 4 문자열 * 각 15 숯불 * 3 비트 (이득) = 5mb 이득 @ HansPassant –

+0

일부 임베디드 컨트롤러는 실제로 비트 - 주소 지정 데이터를 가지고 있지만, 당신이 전형적인 PC에 있다고 가정하면, 이런 종류의 공간을 구하십시오. 메모리는 일반적으로 풍부하고 디스크 공간도 많습니다. 대용량 데이터 세트를 디스크에 쓰고 공간이 부족한 경우 8 비트, 5 비트 수량을 5 바이트로 팩하는 직렬 변환기를 직접 작성하십시오. 또는 압축 라이브러리를 사용하십시오. 그러나 이것은 코드가 복잡해지기 때문에 입증 된 공간 문제가있는 경우에만 다시 나타납니다. –

답변

0

아니요, 컴퓨터의 어떤 것도 진정 '1 비트'입니다. 바이트는 컴퓨터에서 가장 작은 의미있는 정보입니다. 정보의 1 비트 일 수는 있지만 저장하는 데 전체 바이트가 필요합니다.

+0

일부 데이터를 저장하려고합니다. 필자의 경우 byte-8bit는 사용하기에 너무 큽니다. 데이터를 5 비트 형식으로 변환하고 싶습니다. 내가 이것을 좋아한다면 여유 공간을 얻을 수 있을까요? @Paul Swetz –

+0

고맙습니다. 지금은 이해 :) –

관련 문제