use builtin base2dec
[scilab.git] / scilab / modules / elementary_functions / macros / bin2dec.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) ???? - INRIA - Farid BELAHCENE
3 // Copyright (C) 2006 - INRIA - Pierre MARECHAL
4 // Copyright (C) 2011 - DIGITEO - Pierre MARECHAL
5 // Copyright (C) 2011 - DIGITEO - Allan CORNET
6 //
7 // This file must be used under the terms of the CeCILL.
8 // This source file is licensed as described in the file COPYING, which
9 // you should have received as part of this distribution.  The terms
10 // are also available at
11 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12
13 // =============================================================================
14 //
15 // BIN2dec function
16 // Given str a binary string, this function returns the decimal number whose the
17 // binary representation is given by str
18 //
19 // -Input :
20 //    str : a string (or a vector/matrix of strings), containing only characters
21 //         '1' and '0'
22 // -Output :
23 //    y : a scalar/vector/matrix
24 //
25 // F.Belahcene
26
27 // check the type of input argument
28
29 // 2006-06-26 : Modified by Pierre MARECHAL
30 // Check length of given string ( must be 47 bits or less )
31 // =============================================================================
32
33 function y = bin2dec(str)
34
35   rhs = argn(2);
36   if rhs <> 1 then
37     error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"bin2dec", 1));
38   end
39
40   if type(str)<>10
41     error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),"bin2dec",1));
42   end
43
44   // delete all spaces included in the str
45   str = strsubst(str,' ','');
46   y = base2dec(str, 2);
47
48 endfunction