Host introspection: Difference between revisions
Content added Content deleted
(added ocaml partially) |
|||
Line 14: | Line 14: | ||
32 |
32 |
||
little |
little |
||
=={{header|OCaml}}== |
|||
Print word size: |
|||
<ocaml>Printf.printf "%d\n" Sys.word_size</ocaml> |
|||
Dunno about endianness |
Revision as of 01:13, 11 October 2008
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Print the word size and endianness of the host machine.
Forth
: endian cr 1 cells . ." address units per cell" s" ADDRESS-UNIT-BITS" environment? if cr . ." bits per address unit" then cr 1 here ! here c@ if ." little" else ." big" then ." endian" ;
This relies on c@ being a byte fetch (4 chars = 1 cells). Although it is on most architectures, ANS Forth only guarantees that 1 chars <= 1 cells. Some Forths like OpenFirmware have explicitly sized fetches, like b@.
J
":&> (|: 32 64 ;"0 big`little) {"_1~ 2 2 #: 16b_e0 + a. i. 0 { 3!:1 '' 32 little
OCaml
Print word size: <ocaml>Printf.printf "%d\n" Sys.word_size</ocaml> Dunno about endianness