開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の11章(ビット演算)、11.8(ビットマップグラフィックス)、11.10(プログラミング実習)、実習11-5をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
実習11-5.
コード
sample.dart
import 'dart:html';
import 'package:fixnum/fixnum.dart' as fixnum;
void main(){
Element pre = querySelector('#pre0');
InputElement input = querySelector('#t0');
RegExp pattern = new RegExp(r'^[-]?\d+$');
String result = window.navigator.userAgent + '\n';
result += '8つの4ビット値に分割\n';
result += 'その他の数値\n';
[0, 1, 0xf, 0, -1, -2, -16, -17].forEach((int n){
fixnum.Int32 a = new fixnum.Int32(n);
result += '$a: ${split4bit(a)}\n';
});
result += '入力値\n';
pre.text = result;
input.onKeyUp.listen((KeyboardEvent event){
String temp = '';
String v = input.value;
if (!pattern.hasMatch(v)){
temp += '整数(32ビット符号付き)を入力して下さい。\n';
} else {
fixnum.Int32 n = new fixnum.Int32(int.parse(v));
temp += '$n: ${split4bit(n)}\n';
}
pre.text = '$result$temp';
});
}
List<String> split4bit(fixnum.Int32 n){
fixnum.Int32 m = new fixnum.Int32(0xf);
List<String> bits = new List<String>(8);
int i;
for (i = 7; i >= 0; i -= 1){
bits[i] = (n & m).toRadixString(16);
n >>= 4;
}
return bits;
}
0 コメント:
コメントを投稿