저는 이것이 너무 그렇다고 생각하지 않기를 바랍니다. 좋은 대답이 없을 수도 있습니다.실제 데이터에 표시 될 가능성이 가장 적은 마법 바이트를 선택하십시오.
내가 쓰고있는 라이브러리의 일부에는 사용자가 제공 한 값으로 채워지는 바이트 배열이 있습니다. 이 값들은 부동 소수점 형, Double 형, Int 형 (다른 크기) 등으로 C에서 기대할 수있는 바이너리 표현식을 가질 수 있습니다. 이것이 우리가 가치에 대해 말할 수있는 전부입니다.
나는 최적화를위한 기회를 가질 : 는 사용자가 제공 한 값을 더 바이트, 나는 빠른 경로를 취할 수 MAGIC
동일하지, 그렇지 않으면 내가 필요할 때마다 그때 바이트 MAGIC
내 바이트 배열을 초기화 할 수 있습니다 느린 길을 택하십시오.
제 질문은 : 마법 바이트를 선택하는 원칙은 무엇입니까? 그렇다면 받아 들여지는 (다양하게 인코딩되고 배포 된) 데이터에 나타나지 않을 가능성이 있습니까?
제 질문 중 일부는 여러 가지 종류의 데이터에서 바이트 분포에 대해 알 수있는 Benford's law과 같은 것이 있는지 생각해보십시오.
다양한 인코딩 및 분산 데이터를보고 최소 빈도를 선택하십시오. 아직 데이터가 없다면 매직 바이트 변수를 만들고 프로그램을 다시 작성하여 수신 된 데이터의 최소 빈도를 기반으로 매시 바이트를 매번 다시 선택하십시오. 또한, 매직 넘버는 일반적으로 8 비트 이상으로, 유일성의 확률을 증가시킵니다. – bzlm