help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about bin2dec


From: Ron Crummett
Subject: Re: Question about bin2dec
Date: Fri, 30 Jun 2006 10:46:06 -0700
User-agent: Thunderbird 1.5.0.4 (X11/20060516)

John W. Eaton wrote:
On 29-Jun-2006, Muthiah Annamalai wrote:

| > I have some questions regarding the bin2dec function. My understanding | > is that it converts a string of binary characters into a decimal | > number. However, it looks to me that spaces within the string give | > rise | > to a completely different result. As an example:
| >
|  >> x = [1 1 1 1 0];
|  >> x_str = int2str(x);    %convert to string
| > fmt = %1d%3d%3d%3d%3d
| | >> x_str
| > x_str = 1  1  1  1  0
|  >> bin2dec(x_str)
| > ans = 4680
| | > However, if I type
|  >> bin2dec('11110')
| > I get an answer of 30, which is what I would expect. The spaces | > inbetween the characters throw the answer off from the expected result. | | > Is this a bug, or a "feature"? It seems to me that we would not want | > the result from the first method.
| > -Ron
| | I think that is a 'feature'. Especially you can use it like this:
|   x=sprintf("%d",x);
|   bin2dec(x)
| | which will do the job.

It is also a compatibility bug, though the behavior appears to have
been a deliberate choice.  Here is the code from base2dec.m:

  ## Right justify the values before anything else.
  d = strjust (d, "right");

  ## Lookup value of symbols in symbol table, with invalid symbols
  ## evaluating to NaN and space evaluating to 0.
  table = NaN * ones (256, 1);
  table (toascii (symbols (1 : base))) = 0 : base-1;
  table (toascii (" ")) = 0;
  d = reshape (table (toascii (d)), size (d));

Should we opt for compatility here?  I don't see that converting
spaces to 0 is any better than ignoring them.

jwe
_______________________________________________
Help-octave mailing list
address@hidden
https://www.cae.wisc.edu/mailman/listinfo/help-octave
Are we speaking of compatibility with Matlab? I personally favor that, as I have code using the bin2dec function that runs fine in Matlab but not in Octave because of this...feature. Ignoring spaces in the binary vector will lead to what one would expect. (Well, at least what I would expect).

-Ron


reply via email to

[Prev in Thread] Current Thread [Next in Thread]