文档章节

第十五章 位操作

yohoj
 yohoj
发布于 2015/06/06 15:54
字数 1027
阅读 6
收藏 0
点赞 0
评论 0

#include<stdio.h>
#include<string.h>
#include<math.h>
#include <stdlib.h>

int ten(char *pbin);
int main()
{
	char * pbin="01001001";
	printf("%d\n",ten(pbin));
	return 0;
}

int ten( char * pbin)
{
	int p[100];
	int sum=0;
	int i,n;
	n=strlen(pbin);
	for(i=0;i<n;i++)
	{
		p[i]=pbin[i]-48;
	}
	for(i=n-1;i>=0;i--)
	{
		sum=sum+(p[i]*pow(2,n-1-i));
	}
	return sum;
}

#include<stdio.h>
#include<string.h> 
#define M 8*sizeof(int)+1  
 char * expand(char*destination,char*source); 
 char *reverse(char*destination,char*source);  
 char *and(char*destination,char*source1,char*source2); 
 char *or(char *destination,char*source1,char*source2); 
 char *xor(char *destination,char*source1,char*source2);   
 int main(int argc,char *argv[]) 
 {  
	if(argc < 3)     
	printf("Usage:%s [str1] [str2]\n.",argv[0]); 
	char x[M],y[M],z[M];   
	printf("     x = %s.\n", expand(x,argv[1]));  
	printf("     y = %s.\n", expand(y,argv[2]));  
	printf("    ^x = %s.\n", reverse(z,x));  
	printf("    ^y = %s.\n", reverse(z,y)); 
	printf(" x & y = %s.\n", and(z,x,y));  
	printf(" x | y = %s.\n", or(z,x,y));  
	printf(" x ^ y = %s.\n", xor(z,x,y));  	
}   
char * expand(char*destination,char*source) 
{ 
	unsigned int i;   
	for(i=0; i<M-1-strlen(source); i++)   
	destination[i] = '0';  
	destination[i] = '\0';  
	strcat(destination,source); 
	return destination;  
} 
 char *reverse(char*destination,char*source)
 {  
	char *start = destination; 
	strcpy(destination,source); 
	while(*destination)  
	{   
		if(*destination == '0')   
			*destination = '1';   
		else      
			*destination = '0';  
		destination++;  
	}   
	return start; 
}  
char *and(char*destination,char*source1,char*source2) 
{  
	char *start = destination; 
	while(*source1)  
	{  
	if(*source1 == '1'&& *source2 == '1')    
		*destination = '1';  
	else      
		*destination = '0';    		
	destination++; 
	source1++;   
	source2++;   
	}   
	return start;  
}  
char *or(char *destination,char*source1,char*source2) 
{  
	char *start = destination;  
	while(*source1)  
	{   
		if(*source1 == '1' || *source2 == '1')   
			*destination = '1';   
		else      
			*destination = '0';   
		destination++;   
		source1++;  
		source2++;   
	}   
	return start;  
}  
char *xor(char *destination,char*source1,char*source2)
 {  
	char *start = destination;  
	while(*source1)  
	{  
		if(*source1 != *source2 )   
			*destination = '1';   
		else      
			*destination = '0';   
		destination++;   
		source1++;   
		source2++;   
	}   
	return start; 
}

#include<stdio.h> 
#include<string.h>  
char * itobs(int n, char * ps); 
int bit_on(int n); 
int main(void) 
{  
	int num;   
	char bstr[8* sizeof (int) + 1];   
	puts("Please input a integer:(q to quit)"); 
	while(scanf("%d",&num) == 1)  
	{   
		printf("%d (%s)-- bit_on number:%d.\n", num, itobs(num,bstr),bit_on(num));    
		puts("Please input a integer:(q to quit)");   
	}   
	printf("Quit!\n");  return 0;  
}   
char * itobs(int n, char * ps) 
{ 
	int i;  
	static int size = 8 * sizeof(int);   
	for (i = size - 1; i >= 0; i--, n >>= 1)         
	ps[i] = (01 & n) + '0';     
	ps[size] = '\0';   
	return ps; 
}   
int bit_on(int n) 
{  
	int count = 0;  
	while(n/2)  
	{   
		count += n%2;   
		n >>=1;   
	}   
	count +=n%2;  
	return count;
}

#include<stdio.h>
int panduan(int n,int i);
int main()
{
	int n,i;
	scanf("%d%d",&n,&i);
	printf("%d",panduan(n,i));

}
int panduan(int n,int i)
{
	int j;
	int m;
	m=8*sizeof(int);
	for(j=m-1;j>=0;j--,n >>= 1)
	{
		if(j==i+31)
			return n%2;
		
	}
}

#include<stdio.h>
#include<string.h>
void rotate_1(unsigned int x,int i);
int main()
{
	unsigned int x;
	int i;
	scanf("%d%d",&x,&i);
	rotate_1(x,i);
	return 0;
}
void rotate_1(unsigned int x,int i)
{
	int j=0,k=0;
	int n;
   int str[100],p[100],s[100];
	while(x/2)
	{
		
		str[j]=x%2;
		j++;
		x >>= 1;
	}
	str[j]=x%2;
	n=j+1;
	for(j=0;j<n;j++)
	{
		s[j]=str[n-1-j];
	}
	
	for(j=0;j<n-i;j++)
	{
		p[j]=s[j];
		s[j]=s[j+i];
	}
	for(j=n-i;j<n;j++)
	{
		s[j]=p[j-i-1];
	}
	for(j=0;j<n;j++)
		printf("%d",s[j]);
}

#include<stdio.h>
#include<string.h>
struct wei{
	int id;
	int size;
	int bold;
	int italic;
	int	underline;
};
char ali[3][8] = {"left","center","right"};
int n=0;
void output(struct wei canshu);
int font(struct wei canshu);
int size(struct wei canshu);
void alignment(struct wei canshu);
int bold(struct wei canshu);
int italic(struct wei canshu);
int underline(struct wei canshu);
int main()
{
	struct wei canshu{1,12,0,0,0};
	output(canshu);
	char ch;
	while((ch=getchar())!='q')
	{
		switch(ch)
		{
			case 'f':
				canshu.id=font(canshu);
				output(canshu);
				break;
			case 's':
				canshu.size=size(canshu);
				output(canshu);
				break;
			case 'a':
				alignment(canshu);
				break;
			case 'b':
				canshu.bold=bold(canshu);
				output(canshu);
				break;
			case 'i':
				canshu.italic=italic(canshu);
				output(canshu);
				break;
			case 'u':
				canshu.underline=underline(canshu);
				output(canshu);
				break;
			default:
				break;
		}
	}
	return 0;
}

void output(struct wei canshu)
{
	char op[2][5]={"OFF","ON"};
	if(n==0)
	{
		puts("ID SIZE ALIGNMENT B I U");
		printf("%d %d %s %s %s %s\n",canshu.id,canshu.size,ali[0],op[canshu.bold],op[canshu.italic],op[canshu.underline]);
	}
	else if(n==1)
	{
		puts("ID SIZE ALIGNMENT B I U");
		printf("  %d   %d   %s   %s   %s   %s\n",canshu.id,canshu.size,ali[1],op[canshu.bold],op[canshu.italic],op[canshu.underline]);

	}
	else if(n==2)
	{
		puts("ID SIZE ALIGNMENT B I U");
		printf("%3d%3d%5s%4s%4s%4s\n",canshu.id,canshu.size,ali[2],op[canshu.bold],op[canshu.italic],op[canshu.underline]);

	}
	puts("f)change font s)change size a)change alignment");
	puts("b)toggle bold i)toggle italic u)toggle underline");
	puts("q)quit");
}

int font(struct wei canshu)
{
	printf("Enter font id (0-255):");
	scanf("%d",&canshu.id);
	return canshu.id;
}

int size(struct wei canshu)
{
	printf("Enter font id (0-255):");
	scanf("%d",&canshu.size);
	return canshu.size;
}

void alignment(struct wei canshu)
{
	char ch;
	printf("l)left c)center r)rifht\n");
	getchar();//消除回车键的影响
	ch=getchar();
	switch(ch)
	{
		case'l':
			n=0;
			printf("%d",n);
			output(canshu);
			break;
		case'c':
			n=1;
			output(canshu);
			break;
		case'r':
			n=2;
			output(canshu);
			break;
		default:
			break;
	}


}

int  bold(struct wei canshu)
{
	int b;
	puts("1)on 0)off");
	scanf("%d",&b);
	if(b==0)
	{
		canshu.bold=0;
	}
	else
	{
		canshu.bold=1;
	}
	return canshu.bold;
}
int italic(struct wei canshu)
{
	int ita;
	puts("1)on 0)off");
	scanf("%d",&ita);
	if(ita==0)
		canshu.italic=0;
	else
		canshu.italic=1;
	return canshu.italic;
}
int underline(struct wei canshu)
{
	int u;
	puts("1)on 0)off");
	if(u==0)
		canshu.underline=0;
	else
		canshu.underline=1;
	return canshu.underline;

}


© 著作权归作者所有

共有 人打赏支持
yohoj
粉丝 0
博文 16
码字总数 14735
作品 0
宁波
Linux入门教程

Linux入门教程 前言 第一章 关于Linux的历史 第二章 图形界面还是命令窗口 第三章 Linux操作系统的安装 第四章 初步进入linux世界 第五章 Linux系统的远程登录 第六章 Linux文件与目录管理 ...

Amamatthew ⋅ 2014/08/20 ⋅ 0

Linux几种文件系统类型--鸟哥的Linux私房菜学习笔记

ext2/ext3 Linux 适用的文件系统类型。 由于 ext3 文件系统多了日志的记录, 对亍系统的复原比较快速,因此建议你务必要选择新的 ext3 不要用 ext2 了。 (日志式文件系统我们会在后续的第八章...

hiqj ⋅ 2014/09/17 ⋅ 0

【原创】《深入剖析Tomcat》读书笔记

第一章 一个简单的Web服务器 第二章 一个简单的servlet容器 第三章 连接器 第四章 Tomcat的默认连接器 第五章 servlet容器 第六章 生命周期 第七章 日志记录器 第八章 载入器 第九章 Sessio...

pandudu ⋅ 2015/12/22 ⋅ 0

《Windows Server 2008 系统管理之道》 视频突击 电子文档 视频教程 下载

《Windows Server 2008 系统管理之道》 视频突击 清华出版社 系列 系统学习 彻底掌握Windows Server 2008 Windows Server Core 电子文档 下载网址 http://www.91xueit.com 视频教程下载网址 ...

onesthan ⋅ 2010/02/09 ⋅ 0

《Zabbix企业级分布式监控系统》预售

《Zabbix企业级分布式监控系统》预售 一、预售网站链接如下 二、书籍封面如下 三、该书相关信息如下 本书的读者QQ群: Zabbix企业级分布式监控 271659981 (可申请加入,验证码:Zabbix监控)...

it你好 ⋅ 2014/08/13 ⋅ 0

运维工作解释

运维工作解释 2017/3/9 PC小记:《运维之下》的文档作者对运维工作的解释清晰明了,有利于工作的划分和职业的规划,因而值得整理后分享。 https://github.com/opera443399/ops/tree/master/d...

pcnk ⋅ 2017/03/09 ⋅ 0

Apache Shiro 安全框架 指南 1.0 发布

开源电子书《跟我学Apache Shiro安全框架》 Apache Shiro是一个简单强大的Java安全框架,为了让更多人了解并使用该框架,利用业余时间写了此教程,希望能帮助使用该框架的朋友。因为时间仓促...

闲大赋 ⋅ 2014/04/20 ⋅ 33

《高性能网站建设指南》

1.目录11页 1.第一章:规则1-减少HTTP请求,介绍为什么额外的HTTP请求会对性能产生巨大的影响,并介绍了减少HTTP请求的方法,包括图片地图、CSS Sprites、使用data:模式的URL内嵌图片, 以及...

zhchl2010 ⋅ 2015/11/08 ⋅ 0

《HTML+CSS3权威指南》笔记摘要 - 目录

主要是想借助这个平台让大家给我学习途中的错误和不好的地方给与纠正。 我会努力最短时间内完成更新,如果发现有错别字或者Code错误,请指出。 信息:建议使用Opera10以上或者Google浏览器测...

Contac ⋅ 2011/12/02 ⋅ 1

RH124-15 使用KVM虚拟化

第十五章使用KVM虚拟化 15.1 管理本地的虚拟化主机 什么叫虚拟化? redhat的虚拟化常品: KVM RHEV OpenStack 使用kvm虚拟化需要的条件: rhel6以上的64位系统 cpu必须支持硬件虚拟化 vmx,xvm ...

myworldkwd ⋅ 2017/06/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在java中读取文件(也支持读取jar中的文件)

getClass().getResourceAsStream("文件名.格式"); 这个方法是用于获取当前类所在目录下的文件;需要将文件放到和当前类同一个包下面 比如我有个类在 com.test这个包下, 要读取一个test.jpg的图...

太黑_thj ⋅ 56分钟前 ⋅ 0

CentOS 7 源码编译安装 MySQL 5.7记录

没事瞎折腾,本来可以yum安装,却偏偏去要编译源码。 1. 安装依赖包 1). 安装cmake等依赖 # yum install cmake ncurses ncurses-devel bison bison-devel 2). 安装boost 1.59.0 # wget htt...

admin_qing ⋅ 58分钟前 ⋅ 0

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部