- 浏览: 297153 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (272)
- java (42)
- c (49)
- 算法 (29)
- 汇编语言 (3)
- 字符集 (3)
- error (3)
- 搜索引擎 (2)
- 互联网 (18)
- linux (12)
- 网络 (20)
- VMWare (1)
- 面试 (7)
- c++ (55)
- 设计模式 (3)
- db (9)
- office (2)
- FS (1)
- rest (3)
- Ajax (2)
- Spring (2)
- Hibernate (3)
- matlab (1)
- load balancing (8)
- 分布式计算 (2)
- 易语言 (1)
- apache tomcat (1)
- 测试 (1)
- 数据结构 (5)
- 数学 (13)
- 服务器 (9)
- 读后感 (4)
- 好书介绍 (1)
- script (3)
- wordpress (2)
- delphi (21)
- pascal (8)
- xml (3)
- 趣味 (1)
- PHP (3)
- python (13)
- DLL (4)
- openGL (8)
- windows (2)
- QT (28)
- django (7)
- jquery (1)
- 数据挖掘 (7)
- nginx (1)
- js (1)
- mac (1)
- hadoop (3)
- 项目管理 (1)
- 推荐系统 (1)
- html (1)
最新评论
-
晴天1234:
related remove:attention.ibus和u ...
UBUNTU的默认root密码是多少,修改root密码 -
美丽的小岛:
美丽的小岛 写道如上配置好就得了。提示没有OpenGl.dll ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
如上配置好就得了。提示没有OpenGl.dll之类的,再增加入 ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
主要是理清哪两个对象之间的关系,是信号与所有槽的关系或者是槽与 ...
QT之DisConnect -
美丽的小岛:
LPCTSTR类型:L表示long指针 这是为了兼容Windo ...
QString与各种字符串之间的转化
用C去操作集合,有时候觉得十分的麻烦,不过,集合又一定要用。苦思了一些日子,当集合遇到了二进制,也当二进制到了位运算。这个就很好解决。建立这样的一个模型,当集合A有元素a,就用1在a相应的位表示出来,否则就为0 。
一个例子:A={a,b,c} --------7(111)
A有一字集A1={a,c}-------------5(101)
就这样表示。
集合与二进制有一个很思意的相同点,n个元素的集合有2^n个子集;n位的二进制有2^n个表示方法,好吧,让他们对应起来吧。
对于集合B={a,b},看下面:
+--------+--------+--------+
| 集合 | 二进制| 整数 |
+--------+--------+--------+
| 空集 | 00 | 0 |
+--------+--------+--------+
| {a} | 01 | 1 |
+--------+--------+--------+
| {b} | 10 | 2 |
+--------+--------+--------+
| {a,b} | 11 | 3 |
+--------+--------+--------+
就这样了。对于集合的操作也就是相应的操作了,写一个C代码看得具体一点。
#include<stdio.h> void bin_to_set(unsigned int x , char e[]){ int i = 0,f = 0 ; printf("{") ; while(x > 0){ if((x & 1) == 1) { if(f == 0) {printf("%c",e[i]) ; f = 1 ;} else printf(",%c",e[i]) ; } ++i ; x >>= 1 ; } printf("}") ; } unsigned int U(unsigned int x1 ,unsigned int x2){//并 return ( x1 | x2 ) ; } unsigned int C(unsigned int x1 ,unsigned int x2){//交 return ( x1 & x2 ) ; } unsigned int N(unsigned int x,int n){//非 return (((1<< n) -1) ^ x) ; } int E(unsigned int x1 ,unsigned int x2){//x2是否包括x1 return ( (x1 | x2) == x2 ) ; } void hind_set( char *c,int n){ int m = 1 << n ; int i ; for(i = 0 ;i < m ; ++i){ bin_to_set(i,c) ; printf("\n") ; } } int main(){ char c[] = {'a','b','c'} ; printf("{a,b,c}的幂集:\n") ; hind_set(c,3) ; unsigned x1 = 5 ;//{a,c} unsigned x2 = 3 ;//{a,b} unsigned x = 7 ;//{a,b,c} printf("{a,c}与{a,b}并:") ; bin_to_set(U(x1,x2),c) ; printf("\n{a,c}与{a,b}交:") ; bin_to_set(C(x1,x2),c) ; printf("\n{a,c}的非:") ; bin_to_set(N(x1,3),c) ; printf("\n{a,c}是{a,b}的子集吗? %d",E(x1,x2)) ; printf("\n{a,c}是{a,b,c}的子集吗? %d",E(x1,x)) ; return 0 ; }
看一看结果:
发表评论
-
vs2008【断点无效】解决方法
2015-04-13 10:05 743有时候,我们在用vs2008调试的时候,会出现断点无效。如下 ... -
C++模板之特化与偏特化详解
2015-01-07 14:44 785转自:http://www.jb51.net/a ... -
c++中的typename与class<转>
2015-01-07 08:51 790在泛型编程的形参表中,关键字typename和class具有 ... -
traits:Traits技术初探
2015-01-06 12:49 755概述:traits是一种特性萃取技术,它在Generic ... -
POD型别
2015-01-06 12:37 731POD全称Plain Old Data。通俗的讲,一个类或结 ... -
c++核心基础知识(内存管理)
2015-01-04 22:22 663内存管理是C++最令人切 ... -
内存分配器<转>
2015-01-04 22:07 1343题记:内存管理一直 ... -
operator new在C++中的各种写法
2015-01-04 19:27 1160http://blog.sina.com.cn/s/blo ... -
可变参数va_list
2014-12-26 17:45 8481.要在函数中使用参数,首先要包含头文件<stdarg ... -
Apriori算法
2014-12-15 12:56 629http://blog.csdn.net/lizhengn ... -
map注意的两个问题
2014-12-11 14:21 599代码1 void main() { ... -
关于C++ const 的全面总结<转>
2014-11-14 12:56 720C++中的const关键字的用法非常灵活,而使用const ... -
C++DLL编程详解
2014-10-08 19:44 1559DLL(Dynamic Link Library)的 ... -
C++&&QT调试时出现的一些错误
2014-10-08 15:14 752错误 原因 解决 ... -
【转】C++ function、bind以及lamda表达式
2014-09-11 09:42 841本文是C++0x系列的第四篇,主要是内容是C++0x中新增 ... -
STL函数对象及函数对象适配器【转】
2014-09-10 09:24 465一 函数对象Functor STL中提供了一元和 ... -
typedef和typename关键字[转]
2014-09-10 09:21 6531、类型说明typedef 类型说明的格式为: type ... -
C/C++中extern关键字详解[转]
2014-09-09 11:38 4691 基本解释:extern可以置于变量或者函数前,以标示变量 ... -
MYSQL在C—API 中可用的函数
2014-08-24 23:03 566mysql_affected_rows() 返 ... -
编辑距离算法
2014-08-14 00:02 930字符串编辑距离: 是一种字符串之间相似度计算的方法。给定两个 ...
相关推荐
用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)
二进制转换十进制 c语言 输入8位二进制数 输出十进制数
适用于计算机类专业学生,试验报告
2进制十进制转换 c语言 运行环境 win tc
g=0; if(x) /*为负数输入做标记*/ { x=-x; g=1; } s=x/y;
二进制计算器,可像手写计算那样列出加法式子,方便大家计算和学习
多进制转换为十进制的c语言,多进制转换为十进制的c语言
C语言二进制字符串与十六进制字符串相互转化,利用MFC框架生成小工具。
二进制加减法,多种乘法方式实现二进制乘法。
二进制转换(C语言) #include<stdio.h>...
C语言进制转换C语言进制转换
C语言实现进制转换
16进制转float,float转16进制的c语言代码,用的机器内自转
进制转换C语言课程设计.pdf进制转换C语言课程设计.pdf
将任意文件、图片、二进制文件转换成C语言数组,绿色免安装
真正恐怖的二进制数来了,要将二进制数转换成10进制数。因为二进制数太长,连转换成的10进制数写写都要好长好长呢!要求还特别苛,没有把握你能帮得上忙,反正我也晕了很长时间。 Input: 有1000个二进制数,最长的...
基于二进制可执行代码的控制流分析研究,阳俊文,崔宝江,软件安全领域有很多关键问题需要对二进制可执行性代码进行安全特性的分析。控制流分析是进行这些安全特性分析的一个关键步骤。介
该代码是实现二进制转化为十六进制,可以用在嵌入式开发中,在嵌入式中,首先利用图片转换工具,将每个图片的像素点转换为二进制,然后在将使用该代码,将装换的二进制变为十六进制。
浮点数与十六进制转换,c语言开发 Float 转换成16进制(HEX)
二进制换BCD码(内含完整C语言的代码)