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)); } } }
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))); } }