![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构-其他
Selnizor
这个作者很懒,什么都没留下…
展开
-
定点机二进制数加减乘除法的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 · 3123 阅读 · 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 · 1659 阅读 · 0 评论 -
整数和真小数二进制原码、反码、补码转换代码(改进)
对上篇文章进行了改进,主要在1.通过结构体把函数集成度变高2.对十进制转二进制完全char化,对二进制没有长度限制,只对十进制数有限制,只需要把int类型改成longlong类型就可以进一步扩大。3.可以自定义输出的位长,为以后的调用做好准备。#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 64/***目前的实现思路:输入十进制整数或真小数及其需要的位数用函原创 2020-08-21 19:28:00 · 1240 阅读 · 0 评论 -
整数和真小数二进制原码、反码、补码转换代码
希望为计算机初学者提供一些帮助。笔者学术不精,时间仓促,一些功能写的比较笨,但是勉强能用。不能体现补码的取值范围与反码不同的特点。本代码在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 · 1621 阅读 · 0 评论 -
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 · 2342 阅读 · 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 · 405 阅读 · 0 评论 -
KMP算法的一种实现
这次的代码写了好久。。因为有一个问题一直没想透彻。要实现子列相对主列的相对移动,要移动的是子列的指针。。。我一直以为是主列需要一个缩进指针,所以改了好久。。更悲催的是前几次测试阴差阳错的全都对了呃呃呃呃。。后来就发现测试有问题。。。最后才想到。。另外,在计算前缀值的那一步,我本来写了一个char***类型的数组,是一个char*类型的二维数组,想存子列各个前缀的内容。但是后来发现,第一因为存的是指针,读的时候也是读的最初那块内存(main函数里的内存),所以即使给char**malloc一块空间,存上’\原创 2020-08-05 22:44:37 · 115 阅读 · 0 评论