b_a_t: (clever)
b_a_t ([personal profile] b_a_t) wrote2006-10-09 12:53 am
Entry tags:

Число зверя

Кстати, совершенно случайно сегодня, благодаря [livejournal.com profile] schors и [livejournal.com profile] jerom узнал, что эти длинные ужасные числа ИНН и прочих БиК не просто так, от балды придуманы, а несут в себе контрольную сумму, что позволяет проверять их правильность на месте, не обращаясь ни к каким базам данных.

http://polytech.ural.ru/checkvalues.htm собственно.

Забавно.

[identity profile] uisky.livejournal.com 2006-10-09 01:20 am (UTC)(link)
Так и у ISBN, например, та же хуйня.

[identity profile] michael-s.livejournal.com 2006-10-09 02:38 am (UTC)(link)
ненавижу эти абревиатуры.

[identity profile] argv-0.livejournal.com 2006-10-09 05:53 am (UTC)(link)

Ну вообще-то эта фигня практиковалась ещё задолго до всяких ИНН... ;)

Во чего у себя закромах нарыл:

      TNumberAll        = Array[0..8] Of Char;
      TNType            = Array[0..2] Of Char;
      TNPlan            = Array[0..2] Of Char;
      TNKey             = Char;
      TNN               = Array[0..1] Of Char;

      PNumber           = ^TNumber;
      TNumber           = Record Case Byte Of
     0:(All:                                            TNumberAll);
     1:(NType:                                          TNType;
        NPlan:                                          TNPlan;
        NKey:                                           TNKey;
        NN:                                             TNN);
      End;

    Procedure NumberKey(            Var Number:         TNumber);
      Const
        NK:Array[0..Pred(SizeOf(TNumber))] Of Byte      = (9,1,3,9,1,3,0,1,3);
      Var
        Sum:                                            Integer;
        Count:                                          Byte;
      Begin
        Sum:=1;
        For Count:=0 To Pred(SizeOf(TNumber)) Do
          Sum:=Sum+NK[Count]*(Byte(Number.All[Count])-48);
        Number.NKey:=Char(Sum mod 10 + 48);
      End;

Подсчёт контрольной цифирьки в номере счёта. Ещё того, советского, 9-и значного.

"Эх, молодость, молодость..." (c) :)))

[identity profile] duke-igthorn.livejournal.com 2006-10-09 07:04 am (UTC)(link)
Только не говори мне, что ты не в курсе про номер кредитной карточки?;)

[identity profile] dphq.livejournal.com 2006-10-09 09:11 am (UTC)(link)
вот если б в номерах была избыточность, которая позволяла автоматически исправлять один знак на любой позиции...

[identity profile] firecat-7.livejournal.com 2006-10-09 06:24 pm (UTC)(link)
А еще в ИННах зашифрован год рождения владельца :)

[identity profile] ex-snoobot367.livejournal.com 2006-10-11 12:58 am (UTC)(link)
бля, это заговор