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

● 二进制表示

 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. 关于namespace的使用

    #include <string> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main ...

  2. MySQL 单条记录长度最大65535

    今天设计表结构,加了几个字段,结果报错了 Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est 65535... ...

  3. json server的简单使用(附:使用nodejs快速搭建本地服务器)

    作为前端开发人员,经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据.json server 作为工具,因为它足够简单,写少量数据,即可使用. 安装 首先需要 ...

  4. 【Graphite学习】系列学习文章-【转】

    Graphite 系列 #2:Carbon 和 Whisper GRAPHITE SERIES #1: PROVISION HARDWARE GRAPHITE SERIES #2: CARBON &a ...

  5. spring4.0之七:Ordering Autowired Collections

    Spring 4.0的一个小特性是在自动注入的时候使用@Order.Spring 2.5中,我们将bean注入List,如下代码: import org.springframework.stereot ...

  6. 服务注册发现consul之二:在Spring Cloud中使用Consul实现服务的注册和发现

    首先安装consul环境,参照之前的文章:<服务注册发现consul之一:consul介绍及安装>中的第一节介绍. Spring Cloud使用Consul的服务与发现 1.导入依赖pri ...

  7. Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集

    ylbtech-Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集 1.返回顶部 1. Java 实例 - 数组交集  Java 实例 以下实例演示了如何使用 reta ...

  8. 1136 A Delayed Palindrome (20 分)

    Consider a positive integer N written in standard notation with k+1 digits a​i​​ as a​k​​⋯a​1​​a​0​​ ...

  9. Zabbix系统中的历史数据和趋势数据

    原文:http://blog.chinaunix.net/uid-9411004-id-4139807.html 或许读者还记得,我们在介绍如何创建一个监控项目时,我们介绍过在“配置项目”表单页面上有 ...

  10. 知识点:Navicet Mysql数据库电脑本地备份

    Navicet Mysql数据库电脑本地备份 1.打开navicat客户端,连上mysql后,双击左边你想要备份的数据库.点击“计划”,再点击“新建批处理作业”.     2.双击上面的可用任务,它就 ...