【C言語】
int bit_count( __WORD x)
{
int i;
for ( i = 0; x != 0; x &= x-1 ) {
++i;
}
return i;
}
【perl】
#!/usr/bin/perl
use strict;
use warnings;
chomp(my $line = <STDIN>);
my $count;
for($count=0; $line!=0; $line &= $line-1) {
++$count;
}
print $count, "\n";
同じ。
2008年8月22日金曜日
2008年8月20日水曜日
SolarisとSunOSのバージョン表記の関係
時々Solaris2.7, 2.8, 2.9の表記があるが、それぞれSolaris7, 8, 9を意味する。
Solaris 9 8 7 2.6 2.5.1 2.5 2.4 2.3 1.1.2 1.1.1B
SunOS 5.9 5.8 5.7 5.6 5.5.1 5.5 5.4 5.3 4.1.4 4.1.3_U1
Solaris10
SunOS5.10
Solaris 9
SunOS 5.9
Solaris 8
SunOS 5.8
Solaris 7
SunOS 5.7
Solaris 2.6
SunOS 5.6
Solaris 2.5.1
SunOS 5.5.1
Solaris 2.5
SunOS 5.5
Solaris 2.4
SunOS 5.4
Solaris 2.3
SunOS 5.3
Solaris 1.1.2
SunOS 4.1.4
Solaris 1.1.1B
SunOS 4.1.3_U1
2008年8月13日水曜日
シャットダウン リブート shutdown reboot init
◎shutdown:manyより「shutdown はシステムを安全に終了させる。」
○reboot:haltへのリンク。shutdownが起動される。
○init 6:initプロセスの制御
2008年8月9日土曜日
perl tips
(誤)my (@numbers,$x,$y) = @_;
(正)my ($x,$y,@numbers) = @_;
@number配列は全ての@_(サブルーチン引数)を食べ尽くしてしまう。
【配列要素を数値の小さい順にソート】
my @sorted = sort { $a <=> $b } @array;
【配列空判定】
if(@array){print "空ではない\n";}
$< プロセスの実ユーザーID
$> プロセスの実効ユーザーID
$( プロセスの実グループID
$) プロセスの実効グループID
【タイムゾーンオフセット】
#!/usr/bin/perl
use Time::Local;
my $now = time();
my $off = (timegm(localtime($now))-timegm(gmtime($now)));
print "$off\n";
(文字列)
use POSIX 'strftime';
my $itemTimezoneStr = strftime "%Z", localtime;
【パーミッション】
chmod 0644, $targetFilePath;
【配列重複要素削除】
# array -> hash (Delete Repetition)
my %uniq_num;
foreach (@number) { $uniq_num{$_} = 1; }
# hash -> array
my @uniqarray_num = keys(%uniq_num);
print "uniqarray_num = @uniqarray_num\n" if($debug);
【配列操作】(いろいろできそう)
use List::Util; #配列操作ユーティリティクラス
emacs tips
grep、grep-find
grep結果ウィンドウ内、
C-x `場所にタグジャンプ。
M-p と M-n(permissionエラーメッセージ等スキップ)
同時スクロール
M-x scroll-all-mode
シェルのコマンド履歴利用:
M-n 履歴を次に進む
M-p 履歴を前に戻る
置換:
M-x、query-replace【return】、旧文字【リターン】、新文字【リターン】
左下に「Aあuuuu:---…」等と表示されたら、CTRL+「ろ(\)」で元に戻す。(キー押し間違い)
やり直し(ctrl+shift+-(=))のやり直し(ctrl+u)
文字化け
export LANG=ja_JP.UTF-8 でないと日本語化け化け。
* キーボード入力のエンコーディング(C-x RET k)
* 端末出力のエンコーディング(C-x RET t)
* ファイルに保存する際のエンコーディング(C-x RET f)
日本語on/off
ctrl+\
ウィンドウの幅を広げる
縦方向 C-x ^
横方向 C-x {
Esc 3 C-x ^ のように、Esc 数字 であらかじめ何回繰り返すが指定してからやった方が便利です。
http://www1.ocn.ne.jp/~ruby11/linux/emacs3.html
2008年8月8日金曜日
2008年8月7日木曜日
.emacs
;; C-hをDELに変換する。
(keyboard-translate ?\C-h ?\C-?)
;; DELをC-hに変換する。
(keyboard-translate ?\C-? ?\C-h)
;;TAB
(setq default-tab-width 4)
;オートインデント
(global-set-key "\C-m" 'newline-and-indent)
;; テキストの折り返し無効
(setq-default truncate-partial-width-windows t)
(setq-default truncate-lines t)