自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 定点机二进制数加减乘除法的C语言实现

main函数是空的,内容都被写进各个子函数里。在这里稍微说一下各个运算的原理:加法:写了三种加法,分别是严格格式(bin_plus_limit),右对齐(bin_plus_right),和左对齐(bin_plus_left)。只有严格格式有溢出检测。加法的原理都是最基础的进位。减法:即对减数B补码做加法。调用的是右对齐加法。加减法不分原码或补码。乘法(原码):先初始化一个部分积S,长度为输入码长的2倍。部分积前半部分为0,后半部分为乘数B。假设被乘数A=001011,被乘数B=000

2020-08-25 19:41:57 3023 1

原创 浮点数的生成过程(规格化和IEEE754标准)C语言实现

在上一篇文章的基础上增加了对浮点数的处理。如下图本代码在code::blocks 17.12中运行正常#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 64typedef struct rational_number{ char charnum[MAXSIZE];//输入数用char表示 long long integer;//输入数的整数部分

2020-08-22 10:45:49 1609

原创 整数和真小数二进制原码、反码、补码转换代码(改进)

对上篇文章进行了改进,主要在1.通过结构体把函数集成度变高2.对十进制转二进制完全char化,对二进制没有长度限制,只对十进制数有限制,只需要把int类型改成longlong类型就可以进一步扩大。3.可以自定义输出的位长,为以后的调用做好准备。#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 64/***目前的实现思路:输入十进制整数或真小数及其需要的位数用函

2020-08-21 19:28:00 1215

原创 整数和真小数二进制原码、反码、补码转换代码

希望为计算机初学者提供一些帮助。笔者学术不精,时间仓促,一些功能写的比较笨,但是勉强能用。不能体现补码的取值范围与反码不同的特点。本代码在code::blocks17.12中正常运行#include <stdio.h>#include <stdlib.h>#define MAXSIZE 64typedef struct rational_number{ char charnum[MAXSIZE]; long long integer;//整数部分 d

2020-08-21 11:55:30 1568

原创 IPv4地址子网划分的C语言实现(涉及二进制或与运算)

本代码使用界面如下输入1则是输入IP地址和子网掩码,得到网络信息,如输入2则是输入无分类编址信息,输出网络信息,如输入3,4的功能比较简单,就不演示了功能均是通过二进制数运算得到的。为了运算二进制数,学术不精的笔者自己写了处理的函数,如dec to bin(十进制转二进制),bin to dec,bin and bin ,bin or bin 等等。本代码在code::blocks 17.12中正常运行。#include <stdio.h>#include <stdli

2020-08-20 11:22:32 2213 8

原创 海明码生成的方案

输入一段10101…序列,生成其海明码。生成过程在代码中已经表示出来了。本代码在code::blocks17.12中正常运行。#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 60//2的幂int power(int subnum){ if(subnum==0){ return 1; } int res=2; whi

2020-08-20 11:13:50 396

原创 KMP算法的一种实现

这次的代码写了好久。。因为有一个问题一直没想透彻。要实现子列相对主列的相对移动,要移动的是子列的指针。。。我一直以为是主列需要一个缩进指针,所以改了好久。。更悲催的是前几次测试阴差阳错的全都对了呃呃呃呃。。后来就发现测试有问题。。。最后才想到。。另外,在计算前缀值的那一步,我本来写了一个char***类型的数组,是一个char*类型的二维数组,想存子列各个前缀的内容。但是后来发现,第一因为存的是指针,读的时候也是读的最初那块内存(main函数里的内存),所以即使给char**malloc一块空间,存上’\

2020-08-05 22:44:37 104

原创 利用桶函数和哈希函数对一篇英文文章中词频进行排序

先用一个二维数组(char**)存储所有单词列表,然后用哈希函数计算每个单词的哈希值,存入哈希表中。然后遍历哈希表,同时进行桶排序,以链表的形式把二维数组中每个单词的地址存在桶里。最后输出桶中数据即可。本函数在code::blocks17.12中运行正常。#include <stdio.h>#include <stdlib.h>#define wordnum 450#define tablecapacity 1087#define barrelcapacity 40/

2020-08-03 13:47:40 360

原创 快速排序的一种实现

在code::blocks 17.12中运行正常#include <stdio.h>#include <stdlib.h>int size=10;int array[10]={13,81,92,43,65,31,57,26,75,0};/**5 快速排序快速排序基本思路是,找到一个主元,让比主元小的数都在主元之前,比主元大的数都在主元之后。递归运算。找主元是一个关键的问题。另外,当递归到数据较小的组时,使用其他排序方法更方便。**/void quick_so

2020-08-02 13:05:59 113

原创 基数排序的一种实现

利用链表的思路实现基数排序在code::blocks 17.12中运行正常#include <stdio.h>#include <stdlib.h>/**6 基数排序**/typedef struct node{//以链表为实现方式 int* data;//array里的地址 struct node* pNext;//链接到下一个节点}node;int size=15;int array[15]={3221,1,10,9680,577,9420,7

2020-08-02 13:03:22 92

原创 Kruskal算法最小生成树的一种实现

#Kruskal算法最小生成树代码思路见注释和printf内容。本代码在code::blocks 17.12中可以运行。#include <stdio.h>#include <stdlib.h>#define MAX 64typedef struct Graph{ char* vexs[MAX];//节点名称 int AdjMartix[MAX][MAX];//邻接矩阵 int vexnum;//节点数 int edgenum; i

2020-07-29 13:48:09 142

原创 Prim对比Dijkstra算法

Prim对比Dijkstra算法解释解释在注释及代码中已经给出。本代码在code::blocks 17.12 可以确认运行。#include <stdio.h>#include <stdlib.h>#define MAX 64typedef struct Graph{ char* vexs[MAX];//节点名称 int AdjMartix[MAX][MAX];//邻接矩阵 int vexnum;//节点数 int visit[MAX];

2020-07-27 14:54:36 135

原创 以顺序数列建立一个完全二叉搜索树

以顺序数列建立一个完全二叉搜索树本程序在code::blocks 17.12上运行正常#include <stdio.h>#include <stdlib.h>//这里为了省事 把两个数组直接写成静态变量了。可以写成一个结构体并传参int tree[10];//将被填充的数组形式的完全二叉树int array[11]={1,2,3,4,5,6,7,8,9,10};//需要的数列(顺序排列)int i=1;//静态变量:tree的编号,从1开始计,i*2 i*2+1分别

2020-07-24 21:33:23 355

原创 已知先序、中序遍历数组,求树结构的一种实现

已知先序、中序遍历数组,求树结构的一种实现先上一个图解然后是代码部分 解释都已经写在注释里了,在code::block 17.12中可以正确运行。#include <stdio.h>#include <stdlib.h>#define MAX 64/**伪代码:start1=先序数列起点start2=中序数列起点len=传进来的数列长度取先序start号数,这是这次循环的父节点获取在中序中的编号find,这个编号以前的是左节点,以后的是右节

2020-07-23 23:15:20 292

原创 哈夫曼树及WPL计算的一种实现

哈夫曼树及WPL计算的一种实现主要思路写在注释里了,用了两个数组,一个作为堆,一个作为保存最后树状结构地址的数组。我自己感觉可能有点复杂了,下次可以试试用结构体而不是二维数组来实现同样的功能。(使用Code::Block 17.12编译)#include <stdio.h>#include <stdlib.h>typedef struct Haffmantree{ struct Haffmantree* Right; int data; struc

2020-07-22 09:16:14 1453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除