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

● 二进制表示

 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. 获取 TUniConnection.SpecificOptions默认值和下拉框列表值

    TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置! Specific ...

  2. Jenkins job 之间实现带参数触发

    1 背景 开发打包的 jenkins job A 是在 local 的一台 windows 上,同时在这台 local 的 windows 上还有一 另一个 jenkins job B 是用来上传 j ...

  3. 常用的几个vagrant命令

    $ vagrant init      # 初始化 $ vagrant up        # 启动虚拟机$ vagrant halt      # 关闭虚拟机$ vagrant reload     ...

  4. C#修改类模板

    安装目录下 Program Files\vs2013\Common7\IDE\ItemTemplatesCache\CSharp\Code\2052\Class 注意:中文是2052 英文是1033 ...

  5. redis实现对账(集合比较)功能

    现状:每日在进行系统之间的订单对账时,往往是这样的操作流程: 1.从外部系统拉取数据存入本地数据库: 2.查询本地订单数据集合localSet: 3.查询外部系统订单数据集合outerSet; 4.以 ...

  6. 廖雪峰Java2面向对象编程-6Java核心类-2StringBuilder

    字符串操作过程中,每次用 + 拼接字符串,有以下问题: 每次循环都会创建新的对象 绝大部分都是临时对象.浪费内存 影响GC效率 String s = ""; for(int i=0 ...

  7. Jmeter(四十三)WebSocket Sampler 和 Ajax Request

     权利被放出牢笼,就很难再被关入笼中:奴性被唤出来,腰杆和膝盖很难再直起来. ----宅猪<牧神记> websocket: 参考:https://blog.csdn.net/minmint ...

  8. Jmeter(三)Test-Plan、Thread-Group

    思量再三,还是再记一会,看到技术群里边的讨论,真的是压力山大,学习一刻也不能耽搁.继续来回顾Jmeter的知识吧. Test-Plan,是所有Jmeter脚本的根节点,Test-Plan中包含名称.注 ...

  9. win7运行bat文件 一闪而过 解决 必须要将生成器放在C盘等没有中文的目录里

    1.在*.bat所在的文件夹按住shift 键然后鼠标右键,选择“在此处打开命令窗口”, 2.输入bat文件名称然后回车 这样就不会自动消失(只在win7 x64 上尝试过)

  10. Type Cannot change version of project facet Dynamic Web Module to 2.5 报错

    项目下的.setings文件 夹中的 version 改为2.5