てきとうなメモ

本の感想とか技術メモとか

数値

integerとfloatがある.

1> 42.
42
2> 3.14.
3.14000

$で文字charの値

3> $A.
65
4> $a.
97
5> $\t.
9

base#numberでbase進数のnumberの値.別に2,8,16進数に限っていない.

6> 2#1111.
15
7> 8#777.
511
8> 3#10.
3
9> 16#ff.
255

36進数で止まった.

12> 36#10.
36
13> 37#10.
** 1: illegal base '37' **

加減乗除は普通.

14> 3  * (5 - (-3)) + (+4).     
28

ただし,/はfloatになるので.divとremがある.

15> 6 / 3.
2.00000
16> 6 div 3.
2
17> 5 div 3.
1
18> 5 rem 3.
2

ビット演算.b{and,or,xor,sl(shift left), sr(shift right)}という名前になっている.

45> io:format("~.2#~n", [bnot 2#01]).      
-2#10
ok
50> io:format("~.2#~n", [2#1100 band 2#1010]).
2#1000
ok
51> io:format("~.2#~n", [2#1100 bor 2#1010]). 
2#1110
ok
52> io:format("~.2#~n", [2#1100 bxor 2#1010]).
2#110
ok
53> io:format("~.2#~n", [2#101 bsl 2]).       
2#10100
ok
54> io:format("~.2#~n", [2#10101 bsr 2]).
2#101
ok

"~.2#"というのは2進数でErlang-styleの数値表現でフォーマットするという意味.