コード例 #1
0
ファイル: MessageConverter.cs プロジェクト: clewrus/AlgStruct
        public IEnumerable <OmgNum> ToNumbers(string input)
        {
            byte[] message = UnicodeEncoding.UTF8.GetBytes(input);

            for (int i = 0; i < message.Length / m_bytesPerNumber + 1; i++)
            {
                int start  = m_bytesPerNumber * i;
                int length = Math.Min(m_bytesPerNumber, message.Length - start);
                Array.Copy(message, start, m_numBytes, 0, length);

                if (length < m_bytesPerNumber)
                {
                    Array.Fill <byte>(m_numBytes, byte.MaxValue, startIndex: length, count: m_bytesPerNumber - length);
                    yield return(OmgNumExtensions.FromByteArray(m_numBytes));

                    Array.Fill <byte>(m_numBytes, 0, startIndex: 0, count: m_bytesPerNumber - length);
                    Array.Fill <byte>(m_numBytes, byte.MaxValue, startIndex: m_bytesPerNumber - length, count: length);
                    yield return(OmgNumExtensions.FromByteArray(m_numBytes));
                }
                else
                {
                    yield return(OmgNumExtensions.FromByteArray(m_numBytes));
                }
            }
        }
コード例 #2
0
        private IEnumerable <OmgNum> _BytesToNums(byte[] bytes)
        {
            var bf = new BinaryFormatter();

            using (var ms = new MemoryStream()) {
                ms.Write(bytes, 0, bytes.Length);
                ms.Seek(0, SeekOrigin.Begin);

                var numsBytes = (List <byte[]>)bf.Deserialize(ms);
                return(numsBytes.Select(b => OmgNumExtensions.FromByteArray(b)));
            }
        }