Literals/Integer: Difference between revisions

From Rosetta Code
Content added Content deleted
(awk + fortran)
Line 4: Line 4:


Note: this should '''not''' involve the calling of any functions/methods but should be interpreted by the compiler or interpreter as an integer written to a given base.
Note: this should '''not''' involve the calling of any functions/methods but should be interpreted by the compiler or interpreter as an integer written to a given base.


=={{header|AWK}}==

<lang>BEGIN {
if ( (0x2d7 == 727) &&
(01327 == 727) ) {
print "true"
}
}</lang>


=={{header|C}}==
=={{header|C}}==
Line 21: Line 31:
standard)
standard)



=={{header|Fortran}}==

<lang fortran>program IntegerLiteral

implicit none
integer, parameter :: dec = 727
integer, parameter :: hex = Z'2d7'
integer, parameter :: oct = O'1327'
integer, parameter :: bin = B'1011010111'

print *, dec, hex, oct, bin

end program IntegerLiteral</lang>

Outputs:

<pre>
727 727 727 727
</pre>


=={{header|Perl}}==
=={{header|Perl}}==

Revision as of 23:52, 1 February 2009

Task
Literals/Integer
You are encouraged to solve this task according to the task description, using any language you may know.

Some programming languages have ways of expressing integer literals in bases other than the normal base ten.

Show how integer literals can be expressed in as many bases as your language allows.

Note: this should not involve the calling of any functions/methods but should be interpreted by the compiler or interpreter as an integer written to a given base.


AWK

<lang>BEGIN {

   if ( (0x2d7 == 727) &&
        (01327 == 727) ) {
       print "true"
   }

}</lang>

C

Leading 0 means octal, 0x or 0X means hexadecimal. Otherwise, it is just decimal.

<lang c>#include <stdio.h>

int main() {

 printf("%s\n",

( (727 == 0x2d7) && (727 == 01327) ) ? "true" : "false"); }</lang>

C has no way of specifying integers in binary (if there's something like 0b..., it is not standard)


Fortran

<lang fortran>program IntegerLiteral

 implicit none
 integer, parameter   :: dec = 727
 integer, parameter   :: hex = Z'2d7'
 integer, parameter   :: oct = O'1327'
 integer, parameter   :: bin = B'1011010111' 
 print *, dec, hex, oct, bin

end program IntegerLiteral</lang>

Outputs:

         727         727         727         727

Perl

<lang perl> print "true\n" if ( (727 == 0x2d7) && (727 == 01327) && (727 == 0b1011010111) ); </lang>


Python

Works with: Python version 2.5

<lang python>>>> # Oct(leading 0), Dec, Hex(leading 0x or 0X), in order: >>> 01327 == 727 == 0x2d7 True >>> </lang>

Works with: Python version 3.0

<lang python>>>> # Bin(leading 0b or 0B), Oct(leading 0o or 0O), Dec, Hex(leading 0x or 0X), in order: >>> 0b1011010111 == 0o1327 == 727 == 0x2d7 True >>> </lang>

Ruby

(This is an interactive ruby session)

irb(main):001:0> 727 == 0b1011010111
=> true
irb(main):002:0> 727 == 0x2d7
=> true
irb(main):003:0> 727 == 01327
=> true