LINUX.ORG.RU

История изменений

Исправление nanoolinux, (текущая версия) :

Вот тебе конвертер на эрланге. За пять с половиной минут можно написать тсп сервер, и повесить на vps. Но это уже другая история.

conv(Bin) ->
  {A,B,C,D} = parce(Bin),
  <<A:32, B:32, C:32, D:32>>.

parce(B) ->
  <<V:1, Rest/binary>> = B, % one byte for version, for example.
  case V of
    0 -> parce(v1, Rest);
    1 -> parce(v2, Rest);
    2 -> parce(v3, Rest)
  end.

parce(v1, <<A:32, B:16, C:8, D:8>>) -> {A,B,C,D};
parce(v2, <<A:32, B:16, C:16, D:8>>) -> {A,B,C,D};
parce(v3, <<A:32, B:16, C:16, D:16>>) -> {A,B,C,D}.

Исходная версия nanoolinux, :

Вот тебе конвертер на эрланге. За пять с половиной минут можно написать тсп сервер, и повесить на vps. Но это уже другая история.

conv(B) ->
  {A,B,C,D} = parce(B),
  <<A:32, B:32, C:32, D:32>>.

parce(B) ->
  <<V:1, Rest/binary>> = B, % one byte for version, for example.
  case V of
    0 -> parce(v1, Rest);
    1 -> parce(v2, Rest);
    2 -> parce(v3, Rest)
  end.

parce(v1, <<A:32, B:16, C:8, D:8>>) -> {A,B,C,D};
parce(v2, <<A:32, B:16, C:16, D:8>>) -> {A,B,C,D};
parce(v3, <<A:32, B:16, C:16, D:16>>) -> {A,B,C,D}.