【实验目的与要求】
1、熟练掌握指令操作码采用等长码、哈夫曼码、扩展码的编码方法。
2、在已知指令个数和频度的基础上,要求用程序实现等长码、哈夫曼码、扩展码的编码,实验结束后提交源程序和实验说明书。
【实验内容】
了解和掌握指令编码的基本原理和要求,在已知指令个数和频度的前提上,要求用程序实现等长码、哈夫曼码(选做)、扩展码的编码,并计算出平均码长。
【实验步骤】
1.按提示输入处理机的指令条数和使用频度。
3.求出等长码的编码,并计算出平均码长。
4.使用哈夫曼编码方法,求出编码和平均码长(选做)。
5.根据指令个数和使用频度,分析扩展码的扩展格式,并求出编码和平均码长。
6.要设计出简洁、直观、易于操作的界面。
【源代码】
// Test1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//编码方式
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
static int n;//记录指令条数
static char Data[50];//记录需要编码的字符
static float Freq[50];//记录使用频度
static int Bin[50];//保存二进制编码
void Binary(int t) {
//求解二进制编码
int i = 0;
while (t) {
int p = t % 2;
t /= 2;
Bin[i++] = p;
}
}
void Binary(int t,int n) {
//求解二进制编码
int i = n;
if (t == 0) {
Bin[i++] = 0;
}
while (t) {
int p = t % 2;
t /= 2;
Bin[i++] = p;
}
}
void EquL() {
//等长编码
int num = ceil

最低0.47元/天 解锁文章
1万+





