▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串的二进制表示、十六进制表示、图形表示

● 二进制表示

 package package01;

 import edu.princeton.cs.algs4.StdOut;
import edu.princeton.cs.algs4.BinaryStdIn; public class class01
{
private class01() {} public static void main(String[] args)
{
int bitPerLine = 16; // 默认每行显示 16 Bit
if (args.length == 1)
bitPerLine = Integer.parseInt(args[0]);
int count; // 统计输入的字符数
for (count = 0; !BinaryStdIn.isEmpty(); count++)
{
if (bitPerLine == 0)
{
BinaryStdIn.readBoolean();
continue;
}
if (count % bitPerLine == 0) // 显示够 bitPerLine 个 bit,换行
StdOut.println();
StdOut.print(BinaryStdIn.readBoolean() ? 1 : 0);// 读取一个 bit,分别显示 1 和 0
}
if (bitPerLine != 0)
StdOut.println();
StdOut.println(count + " Bits"); // 总字符数
}
}

● 十六进制表示

 package package01;

 import edu.princeton.cs.algs4.StdOut;
import edu.princeton.cs.algs4.BinaryStdIn; public class class01
{
private class01() {} public static void main(String[] args)
{
int bytePerLine = 16; // 默认每行显示 16 Byte
if (args.length == 1)
bytePerLine = Integer.parseInt(args[0]);
int count;
for (count = 0; !BinaryStdIn.isEmpty(); count++)
{
if (bytePerLine == 0)
{
BinaryStdIn.readChar();
continue;
}
if (count % bytePerLine == 0)
StdOut.println();
else
StdOut.print(" ");
StdOut.printf("%02x", BinaryStdIn.readChar() & 0xff);
}
if (bytePerLine != 0)
StdOut.println();
StdOut.println(count + " Bytes");
}
}

● 图形表示

 package package01;

 import java.awt.Color;
import edu.princeton.cs.algs4.BinaryStdIn;
import edu.princeton.cs.algs4.Picture; public class class01
{
private class01() {} public static void main(String[] args)
{
int width = Integer.parseInt(args[0]), height = Integer.parseInt(args[1]); // 列数(Bit)和行数
Picture picture = new Picture(width, height); // 新建一张图
for (int row = 0; row < height; row++)
{
for (int col = 0; col < width; col++)
{
if (!BinaryStdIn.isEmpty()) // 按照输入流填充依次图形
picture.set(col, row, BinaryStdIn.readBoolean() ? Color.BLACK : Color.WHITE);
else
picture.set(col, row, Color.RED); // 红色补齐没有元素的部分
}
}
picture.show();
}
}

■ 用图形显示《白鲸记》前 18 万字符

《算法》第五章部分程序 part 7的更多相关文章

  1. 《算法》第五章部分程序 part 3

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(美国国旗排序) ● 美国国旗排序 package package01; import edu.princeton.cs.algs4 ...

  2. 《算法》第五章部分程序 part 8

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 pac ...

  3. 《算法》第五章部分程序 part 6

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; impor ...

  4. 《算法》第五章部分程序 part 5

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,Knuth-Morris-Pratt 无回溯匹配,Boyer - Moore 无回溯匹配,Rabin - Karp 指纹匹配 ● Knuth-Morr ...

  5. 《算法》第五章部分程序 part 4

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,Trie 树类,Trie 集合,三值搜索树(Ternary Search Trie) ● Trie 树类 package package01; imp ...

  6. 《算法》第五章部分程序 part 2

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(计数 + 插排),(原地排序),(三路快排,与前面的三路归并排序相同) ● 计数 + 插排 package package01; ...

  7. 《算法》第五章部分程序 part 1

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排) ● 字母表类 package package01; import edu.princeton.cs.algs4. ...

  8. Gradle 1.12用户指南翻译——第四十五章. 应用程序插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. 《算法》第一章部分程序 part 1

    ▶ 书中第一章部分程序,加上自己补充的代码,包括若干种二分搜索,寻找图上连通分量数的两种算法 ● 代码,二分搜索 package package01; import java.util.Arrays; ...

随机推荐

  1. TStrings与Memo.Lines赋值的问题

    //想实现在函数中生成Memo1的内容,而后赋给Memo.Lines //方法1: var s: TStrings; begin s := TStringList.Create; AddMemoDat ...

  2. Gradle Java Web应用程序并在Tomcat上运行

    1- 创建Gradle工程 打开 Eclipse ,在菜单中找到 File -> New -> Other…,在打开界面中选择 Gradle Project,如下图中所示 - 点击下一步( ...

  3. js中的 Table 对象

    Table 对象Table 对象代表一个 HTML 表格.在 HTML 文档中 <table> 标签每出现一次,一个 Table 对象就会被创建. Table 对象集合cells[]    ...

  4. git add , git commit 添加错文件 撤销

    1. git add 添加 多余文件 这样的错误是由于, 有的时候 可能 git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件 git add 如果添加了错误的文件的话 撤 ...

  5. Qt应用程序单实例化

    在实际应用中,我们经常需要让应用程序只有一个实例,再打开新的文档或者页面时,只是替换现在的窗口或者新打开一个标签,而不是重新启动一次应用程序.Qt中是否可以做到这样呢,答案是肯定的,因为Qt本身可以直 ...

  6. PAT 乙级 1027 打印沙漏(20) C++版

    1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...

  7. Springboot配置使用ssl,使用https

    SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间, ...

  8. js中获取事件对象的方法小结

    原文地址:http://jingyan.baidu.com/article/d8072ac4594d6cec95cefdac.html 事件对象 的获取很简单,很久前我们就知道IE中事件对象是作为全局 ...

  9. Ring0 - Lookaside结构

    由于频繁的申请,回收内存会导致在内存上产生大量的内存"空洞".这时使用Lookaside. 1.每次申请固定大小的内存. 2.申请和回收的操作十分频繁. 实现原理: 他先向wind ...

  10. 1126 Eulerian Path (25 分)

    1126 Eulerian Path (25 分) In graph theory, an Eulerian path is a path in a graph which visits every ...