水曜日, 4月 30, 2014

g++ の内部コード

g++ の内部コードは UTF16 で、wchar_t も当然のことながら16ビットです。

なんなら日本語のファイルを読んで、コードを出力してみればいいわけですね。

ロケールを設定する必要があります。


#include <iostream>
#include <fstream>
using namespace std;
void binary(int16_t x)
{
for(int i=15;0<=i;i--)
{
cout << ((x>>i)&1);
}
cout << endl;
}
int main()
{
setlocale(LC_CTYPE,"");
wstring str;
char fn[]="uni.txt";
wifstream fin;
fin.open(fn,ios::binary);
if(fin)
{
fin >> str;
binary(str[0]);
wcout << str << endl;
}
return 0;
}
view raw wchar.cpp hosted with ❤ by GitHub

火曜日, 4月 29, 2014

C++ でバイナリで表す

C++ でバイナリで表すには、自分で書かねばならないようです。

べつにたいした手間ではないですが、書かされるという気分が知性に対する挑戦のように思えるわけですね。

こんなことをやらされるために頭脳があるんじゃない!みたいな。

もしそんな教師がいたら最悪ですね。でも現実は頭脳に厳しい。

というわけで書きました。

なんか頭にくるのでここに載せときます。


注意点として、(int16_t)0xff などとキャストすると結果は 1111111111111111 と表示されます。

当然そうなるわけなんですが、0000000011111111 とはなりません。

注意しましょう。

#include <iostream>
using namespace std;
int main()
{
int8_t x=0b010101;
for(int i=7;0<=i;i--)
{
cout << ((x>>i)&1);
}
cout << endl;
return 0;
}
view raw norecurse.cpp hosted with ❤ by GitHub

火曜日, 4月 22, 2014

eshell (Emacs) と .website (IE) , time (実行時間の計測)メモ

本日の収穫:

M-x eshell

Emacs エディタの話です。

M-x shell を愛用していたわけなんですが、M-x eshell なるものがあるんですね。

ずっと便利じゃないですかこれ。早いし。なんだったんだ今までの苦労は(笑

コマンドの結果が別ウィンドウで表示されます。


.website

IE の話です。

サイトのファビコンをクリック・ドラッグすると、サイトのリンクを作れます。

サイトのリンクと同じようなものですが、IEを指定できます。

time

time ./a.exe で実行速度が計測できます。

水曜日, 4月 09, 2014

Java:バイナリ表示

Java でバイナリを表示するには、toBinaryString()関数を使うと簡潔に表現できます。

public class Checksum
{
static int checksum(int list[])
{
int sum=0;
for(int x:list)
{
sum+=x;
}
sum+=sum>>4;
sum=~sum;
return sum&0b1111;
}
static String binary(int x)
{
return String.format("%4s", Integer.toBinaryString(x)).replace(' ', '0');
}
public static void main(String args[])
{
int list[]={0b0000,0b0100,0b1000,0b1100};
for(int x:list)
{
System.out.println(binary(x));
}
System.out.println("checksum: "+binary(Checksum.checksum(list)));
int newList[]={0b0000,0b0100,0b1000,0b1100,Checksum.checksum(list)};
System.out.println("checksum: "+binary(Checksum.checksum(newList)));
}
}
view raw Checksum.java hosted with ❤ by GitHub

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...