7
$\begingroup$

For example, $a=0.10101$ in binary representation.

Then how to calculate $a^2$ directly in mathematica?

Is there any function turning binary into decimal? I only found its inverse...

$\endgroup$
2

2 Answers 2

12
$\begingroup$

You can input numbers in any base up to 36 using the notation base^^digits. Digits over 9 are represented using a, b, c, ...

You can print numbers in any base up to 36 using BaseForm.

Thus,

In[1]:= a=2^^0.10101
Out[1]= 0.65625

In[2]:= BaseForm[a^2,2]
Out[2]//BaseForm= Subscript[0.0110111001, 2]

Note that the internal representation of numbers doesn't know or care about bases. These tools are only for inputting or printing numbers, but do not affect how numbers are stored internally. The internal representation is always binary.


IntegerDigits/RealDigits and FromDigits will convert numbers to/from an explicit list of digits. These functions work with any base, not just up to 36.

$\endgroup$
4
  • 5
    $\begingroup$ It should probably be noted that internal presentation of real numbers in Mathematica is always binary, and this causes rounding errors for ^^ arbitrary-base non-integers with non-power-of-two base. If one wants to perform precise computation on some other base, numbers should be manipulated in their rational forms. $\endgroup$
    – kirma
    Jul 15, 2015 at 7:10
  • 1
    $\begingroup$ @kirma Thanks for the addendum! $\endgroup$
    – Szabolcs
    Jul 15, 2015 at 7:11
  • $\begingroup$ Heh, I didn't actually notice your statement about internal format before I wrote my comment. That explains why my comment is... largely, but not entirely redundant. $\endgroup$
    – kirma
    Jul 15, 2015 at 7:47
  • 1
    $\begingroup$ @kirma It's not redundant at all, as you explained why it is important that the internal representation is always binary. $\endgroup$
    – Szabolcs
    Jul 15, 2015 at 9:54
6
$\begingroup$

You can enter a number in an arbitrary base using base^^digits:

alpha = 2^^0.10101;
BaseForm[alpha, 2]
BaseForm[alpha^2, 2]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.