投稿

8月, 2019の投稿を表示しています

ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

LibreOffice Basic 変数 データ型 スコープ 定数 演算子 配列 構造体

LibreOffice Basicの文法はマクロソフトのVBAに似ている。ExcelでVBAを使っている人にとっては覚えやすい。ただしVBAのほうがより厳格なので、VBAの構文がLibreOffice BasicでエラーになるよりもLibreOffice Basicの構文がVBAでエラーになることのほうが多いらしい。 コメントの付け方 アポストロフィ(')かREMで始まってその行末までがコメント。REMは大文字と小文字を区別しないのでremでもREMでもRemでもみな同じ。 '改行までがコメント REM 改行までがコメント rem 改行までがコメント ステートメント 一つの命令や一つの宣言を表すLibreOffice Basicの基本単位がステートメント。文章でいえば一つの文。LibreOffice Basicでは改行によって一つ一つのステートメントが区切られる。改行をまたいで一つのステートメントを記述したい場合にはアンダースコア(_)を使う。また、一つの行に複数のステートメントを記述したい場合にはコロン(:)を使う。 REM **** BASIC **** Sub Main MsgBox("Hello World") '2行に渡って1つのステートメントを記述 MsgBox("Hello") & _ " LibreOffice" '1行に複数のステートメントを記述 MsgBox("Hello Basic") : MsgBox("Good Night") End Sub 文字列定数 Option Compatibleとモジュールの冒頭に宣言しておくと、マイクロソフトのVBやVBAと同じように、次のような文字列定数を使用することができる。Option CompatibleはLibreOffice BasicにVBAと同様の機能を付け加えるためのもの。 vbLf ラインフィード(改行)。C言語でいうところの\n vbCr キャリッジリターン(行頭)。C言語でいうところの\r vbCrLf キャリッジリターンとラインフィード vbTab 水平タブ。C言語では\t vbVerticalTab

2進数の桁数(ビット数)で表すことができる数の個数

1桁の2進数で表すことができる数の個数は0と1、つまり合計2個。ちなみに10進数の1桁で表すことができる数の個数は、0から9まで数えて合計10個。 2進数2桁で表すことができる数の個数は、0, 1, 10, 11なので合計4個。2進数3桁で表すことができる数の個数は、0, 1, 10, 11, 100, 101, 110, 111なので合計8個。 一般に、桁数で表すことができる数の個数は、その進法の基数の桁数乗。基数というのは2進法ならば2のこと、10進法ならば10のこと、16進法ならば16のこと。 \[ 表現できる数の個数 = 基数^{桁数} \] 例えば、2桁の10進数で表すことができる数の個数は、 \[ \begin{align} 10^2 &= 10 \times 10 \\ &= 100 \end{align} \] と計算されて100個となり、4桁の2進数で表すことができる数の個数は、 \[ \begin{align} 2^4 &= 2 \times 2 \times 2 \times 2 \\ &= 16 \end{align} \]と計算されて16個となる。 2進数の桁数とそれが表すことができる値の個数を表にしてみた。2進法では桁数はビット数に等しいのでビット数と言い換えてみた。累乗の単位元が1であるので、2の1乗が2になることに要注意。 ビット数と値域の対応表 ビット数 値の個数 1ビット \(2^1=2\)個 2ビット \(2^2=4\)個 3ビット \(2^3=8\)個 4ビット \(2^4=16\)個 5ビット \(2^5=32\)個 6ビット \(2^6=64\)個 7ビット \(2^7=128\)個 8ビット \(2^8=256\)個 9ビット \(2^9=512\)個 10ビット \(2^{10}=1024\)個 16ビット \(2^{16}=65536\)個 20ビット \(2^{20}=1048576\)個 24ビッ

10進数からr進数への変換

10進数から2進数への変換 例えば35という10進数を2進数へと変換するには、10進数の35を2進数の基数である2で35が0になるまで割りつづけ、その余りを得ることで計算する。 \[ \begin{align*} 35 \div 2 = 17 \cdots 1 \\ 17 \div 2 = 8 \cdots 1 \\ 8 \div 2 = 4 \cdots 0 \\ 4 \div 2 = 2 \cdots 0 \\ 2 \div 2 = 1 \cdots 0 \\ 1 \div 2 = 0 \cdots 1 \\ \Rightarrow 100011 \end{align*} \] 筆算では次のように書くことができる。 \[ \begin{array}{r} 2 \underline{)35} \cdots 1 \\ 2 \underline{)17} \cdots 1 \\ 2 \underline{)8} \cdots 0 \\ 2 \underline{)4} \cdots 0 \\ 2 \underline{)2} \cdots 0 \\ 2 \underline{)1} \cdots 1 \\ \Rightarrow 100011 \end{array} \] 10進数の35を2進数に変換すると、その計算結果は100011になった。正しかったかどうかを確かめるために逆変換してみる。 \[ \begin{align*} 100011 &\Rightarrow 1 \times 2^5 + 1 \times 2^1 + 1 \times 2^0 \\ &\Rightarrow 1 \times 32 + 1 \times 2 + 1 \times 1 \\ &\Rightarrow 32 + 2 + 1 \\ &\Rightarrow 35 \end{align*} \] 35という結果が得られたので正しそうだ。 10進数を2進数に変換するPython3プログラム 10進数の正の整数を入力すると、その数値を2進数に変換するためのプログラムをPython3で書いてみた。 # 与えられた正の整数を2進数に変換して標準出力するプログラム # 実行方法は $ python3 ソースファイル名.py RADIX =