いらっしゃいませ。
こちらでは、私の日々の記録や思っていることを書いております。
本ブログについての重要事項は[広報モード]に記載されておりますので、
広報モードカテゴリの内容は必ずご覧ください。

また、はてなダイアリー・はてなブログによるリンクより辿って来た方は、
ホームページはこちらですので、
そちらもご覧ください。
一般的な雑談やご要望などはホームページにある「カフェ」(掲示板)にお願いします。
日記に対するコメントは一番近い話題が書かれている日のトピックスのコメント欄に、お願いします。
触れてある内容に近い話題であるならそちらに書き込んでも構いませんが、日記にコメントしていいかどうかわからない場合は、掲示板に書いても構いません。
ホームページにはゲストブックもございますので、足跡をよろしくお願いいたします。

記事内の動画を再生する際には、最新の QuickTime Player(無料)が必要です。

累乗プログラム

研修に使うプログラムで、「四捨五入をする」という処理が必要になったため、関数を作りました。
アルゴリズムは「四捨五入対象桁に5を足して、切り捨てる」というもの。四捨五入対象桁以下の値が5未満(つまりその桁が4以下)のときは、そのまま切り捨てられ、5以上ならば繰り上がりが生じるので、切り捨てを行うことによって四捨五入が完成するという。*1
今回のプログラムでは四捨五入対象桁は決まっているのですが、汎用性を高めるために四捨五入対象桁をshort型(整数)で選べるようにしました。そのためには、10^nを計算しなければなりません。しかし、累乗というのはC言語では演算として存在しないので、作ることにしました。
二進累乗アルゴリズムを使うのは学部時代PKCSの研究のとき以来です。なつかしいな。















累乗のほうは標準ライブラリ(math.h)にあったんだorz orz orz orz orz


でも、あれは指数もfloatで指定するようになっていますけど、どんなアルゴリズム使っているんだろ(@_@)

*1:厳密には対象桁以下をそのまま残し、表示のときにそのまま切り捨てる。