Yeah.. I should've read further.  18446744073709551615 is the largest 
unsigned 64 bit integer, but having said that, I think it is going to take 
some doing to make BIGNUM work with MOD, since internally it's not an 
integer.

  MOD is going to expect a 4 byte size and BIGNUM is 40 bytes, so if the 
incoming data size in bytes is > 4?





----- Original Message ----- 
From: "Tony IJntema" <[email protected]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Thursday, May 02, 2013 10:31 AM
Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number) 
check digit calculation


: Mike,
:
: I'm afraid the maximum total length needed is even longer than 38 
characters
: (which is the maximum length of bignum).
: The article, which Jim refers to, contains the statement you need a 128 
bit
: integer.
:
: Tony
:
: -----Original Message-----
: From: [email protected] [mailto:[email protected]] On Behalf Of Mike 
Byerley
: Sent: donderdag 2 mei 2013 15:43
: To: RBASE-L Mailing List
: Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number)
: check digit calculation
:
: Or a 64 bit integer.
:
: ----- Original Message -----
: From: "James Bentley" <[email protected]>
: To: "RBASE-L Mailing List" <[email protected]>
: Sent: Thursday, May 02, 2013 5:36 AM
: Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number)
: check digit calculation
:
:
: Tony,
:
: The following Wikipedia article has a section on computing the mod if a
: computer language cannot handle 30 digit integers.
: http://en.wikipedia.org/wiki/International_Bank_Account_Number
:
: Per RBase V9.1 64 bit or V9.5 64 bit documentation, the BIGNUM data type 
can
: hold the derived integer.
: From the Wikipedia article you can enter set var d bignum (30,0) =
: 3214282912345698765432161182
: Show var:
: Variable = Value Type
: -------------------- ------------------------------ ------- #DATE =
: 05/02/2013 DATE #TIME = 4:14:02 TIME #PI = 3.14159265358979 DOUBLE SQLCODE 
=
: 0 INTEGER SQLSTATE = 00000 TEXT #NOW = 05/02/2013 4:14:02 DATETIME d =
: 3214282912345698765432161182 BIGNUM (30, 0)
:
: you are correct that the mod function does not handle BIGNUM as a valid 
data
: type
: R>set var dy integer = (mod(.d,97))
: -ERROR- Unrecognized command - retype it ( 40)
:
: Certainly, an enhancement request to add BIGNUM as acceptable argument for
: MOD function would be in order.
: In the meantime you could used the method described in the Wikipedia 
article
: to create a Stored Procedure (function) to process the number in parts.
:
:
:
:
: Jim Bentley,
: American Celiac Society
: 1-504-737-3293
:
:
: ________________________________
: From: Tony IJntema <[email protected]>
: To: RBASE-L Mailing List <[email protected]>
: Sent: Thursday, May 2, 2013 2:20 AM
: Subject: [RBASE-L] - European IBAN (International Bank Account Number) 
check
: digit calculation
:
:
: Hi,
:
: In 2014 we will have to use a new bank account number in Europe.
:
: It looks like this: NL91ABNA0417164300
:
: 91 is a check digit
:
: This check digit is a result of a mod 97 operation.
:
: The calculation that needs to be performed is:
:
: (mod(101123100417164300232100,97))
:
: (The length of the figure is 24 characters)
:
: The result = 7
:
: The check digit then becomes 98 - 7 = 91
:
: My question is: This figure is too big for a modular operation and bignums
: are not allowed in the mod function. Does anybody know a workaround?
:
:
: N.B.
:
: To rules to create the long figure are:
:
: Change the IBAN to: ABNA0417164300NL00 (Put NL (=countrycode) after the
: figure and add two zeroes to it.
: Replace all letters by it's position in the Alphabet and add 9 to this
: number ( A = 10, B = 11, and so on)
:
: Tony
:
: 


Reply via email to