4.1.1任务描述
写一个程序,从键盘上接收一个整数,用二进制形式输出这个整数。
#include<stdio.h>
#include<stdlib.h>
intmain(void){
//定义变量
intnum,a[32],i=0;
//提示用户输入内容
printf("请输入一个十进制整数:\n");
//强制刷新
fflush(stdout);
//接收从键盘上输入的内容
scanf("%d",&num);
while(num!=0){
a[i++]=num%2;
num=num/2;
}
for(i--;i>=0;i--){
printf("%d",a[i]);
}
printf("\n");
returnEXIT_SUCCESS;
}
5.1.1作业任务
已知intx=5,y=3求解下列表达式的值
!x,~x,x&y,x&&y,x|y,x||y,x^y
#include<stdio.h>
#include<stdlib.h>
intmain(){
intx=5,y=3;
printf("%d\n",!x);
printf("%d\n",x);
printf("%d\n",~x);
printf("%d\n",x&y);
printf("%d\n",x&&y);
printf("%d\n",x|y);
printf("%d\n",x||y);
printf("%d\n",x^y);
returnEXIT_SUCCESS;
}
======================================================================
5.1.1作业任务
完成下列任务(手写需要步骤)
(1)把十进制数278转换成二进制、八进制、十六进制。
(2)把二进制数100100101转换成八进制、十六进制、十进制。
(3)把八进制706转换成十进制、十六进制、二进制。
(4)把十六进制FA01转换为二进制、八进制、十进制。
(1)278换成二进制为:100010110
八进制为:426
十六进制:116
(2)100100101转换八进制:445
十六进制:125
十进制为:293
(3)706转换成十进制:454
十六进制:1C6
二进制为:111000110
(4)FA01转换二进制:1111101000000001
八进制为:175001
十进制为:64001
======================================================================
5.2.1作业任务
完成下列任务(手写需要步骤)
(1)求27&5
(2)求17|12
(3)求27&5
(4)求27^5
(5)求27<<5
(6)求27>>5
#include<stdio.h>
#include<stdlib.h>
intmain(){
printf("%d\n",27&5);
printf("%d\n",17|12);
printf("%d\n",27&&5);
printf("%d\n",27^5);
printf("%d\n",27<<5);
printf("%d\n",27>>5);
returnEXIT_SUCCESS;
}
======================================================================
5.3.1作业任务
写一函数实现两个数的交换,交换变量利用位运算实现。
#include<stdio.h>
#include<stdlib.h>
voidfun(int*a,int*b){
//按位异或运算符
*a=(*a)^(*b);
*b=(*b)^(*a);
*a=(*a)^(*b);
}
intmain(){
//定义变量
inta,b;
printf("请输入两个整数:\n");
fflush(stdout);
scanf("%d,%d",&a,&b);
printf("转换前的顺序:a=%d,b=%d\n",a,b);
fun(&a,&b);
printf("输出转换顺序后的数字:a=%d,b=%d\n",a,b);
returnEXIT_SUCCESS;
}
======================================================================
5.4.1作业任务
编写一个函数用来实现左右循环移位,函数名为move,调用方法为move(value,n)其中value为要循环位移的数,n为位移的位数。例如你n<0表示为左移;n>0为右移,n=4表示要右移4位,n=-3表示左移3位。
#include<stdio.h>
#include<stdlib.h>
intmain(){
unsignedmoveright(unsigned,int);
unsignedmoveleft(unsigned,int);
unsigneda;
intn;
printf("\ninputanoctalnumber:");
fflush(stdout);
scanf("%o",&a);
printf("inputn:");
scanf("%d",&n);
if(n>0){
moveright(a,n);
printf("result:%o\n",moveright(a,n));
}else{
n=-n;
moveleft(a,n);
printf("result:%o\n",moveleft(a,n));
}
returnEXIT_SUCCESS;
}
unsignedmoveright(unsignedvalue,intn){
unsignedz;
z=(value>>n)|(value<<(16-n));
return(z);
}
unsignedmoveleft(unsignedvalue,intn){
unsignedz;
z=(value>>(16-n))|(value<<n);
return(z);
}
======================================================================
5.5.1作业任务
设计一个函数,使给出一个数的源码能得到该数的补码。
#include<stdio.h>
#include<stdlib.h>
intmain(){
unsignedinta;//定义整型a
Unsignedintgetbits(unsigned);//加载方法签名
printf("请输入八进制数:\n");
fflush(stdout);//换行之后打印字符串
scanf("%o",&a);//输入需要转换的数字a
printf("结果为:%o\n",getbits(a));//将输入的a传入到方法getbits中计算结果并打印出来
returnEXIT_SUCCESS;
}
unsignedintgetbits(unsignedvalue)
{
unsignedintz;//定义无符号整型z
z=value&0100000;//将传入的参数value和0100000进行与操作之后的结果赋值给z
if(z==0100000)//判断z是否等于0100000,等于执行下面操作
z=~value+1;//传入的参数value取反加一赋值给z
else
z=value;//否则将value本身赋值给z
return(z);//返回结果z
}
======================================================================
5.6.1作业任务
(1)定义一个位域,位域列表中有4个变量,
(2)分别给位域中变量赋值,
(3)输出变量的值
#include<stdio.h>
#include<stdlib.h>
structlocation{
//定义无符号整形变量
unsignedinta:1;
unsignedintb:2;
unsignedintc:2;
unsignedintd:3;
}lo;
intmain(){
//给变量赋值
lo.a=1;
lo.b=3;
lo.c=2;
lo.d=7;
printf("%d,%d,%d\n",lo.a,lo.b,lo.c,lo.d);
returnEXIT_SUCCESS;
}
相关推荐
整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出整数转化为二进制数输出...
c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。
将数据以二进制形式输出,支持整数类型和浮点数类型,方便理解数据在计算机中如何以二进制存储 整数1的存储如下: 浮点数1.0的存储如下:<00111111 10000000 00000000 00000000>
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出。
设计算法把一个十进制整数转换为二到九进制之间的任意进制数输出(链式栈)
对于两个非负整数x 和y,函数f(x,y) 定义为x 和y 在二进制表示时,其对应位不同的个数。例如,f(2,3)=1, f(0,3)=2, f(5,10)=4。 现在给出一组非负整数x 和y,计算f(x,y)的值。 Input 第一行:一个整数T (0 ),...
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出
描述: 把二进制数转换成十进制数。 输入: 输入是一个8位的二进制数。 输出: 把输入的数转换为十进制数输出。 输入样例: 10000001 输出样例: 129
用c语言写的小程序,功能是将十进制数转换为二进制数。
1、由键盘对10个数组元素初始化,求它们的平均值并输出。... 2、输入一个十进制整数,输出与其相等的二进制形式。将二进制保存在一个数组中,然后按相反的顺序输出。 3、编程对10个数组元素的排序。
本文实例讲述了C语言用栈实现十进制转换为二进制的方法。分享给大家供大家参考,具体如下: #include #include #include<math.h> #include #include process.h #define SIZE 100 #define STACKINCREMENT 10 #...
C语言栈的方式实现十进制数转换为二进制数,完整代码,DEVC中直接使用
该程序是采用c语言开发的,二进制的遗传算,用于求解最优解。
用C语言编写的十进制转为二进制的代码,可根据需要调整为其余进制的转化
十进制整数(正、负、零) 采用单链表实现 75行代码
文件的读写操作 fgetc 从文件中读取一个字符 fputc 写一个字符到文件中去 fgets 从文件中读取一个字符串 fputs 写一个字符串到文件中去 fprintf 往文件中写格式化数据 fscanf 格式化读取文件中数据 fread 以二...
C语言实现十进制转换到二进制、八进制、十六进制
这是一个关于测试C语言中整数移位运算的MFC应用程序,界面中标志表示左移或者右移,移位数输入要移的位数,还有输入整数,和输出结果,按钮是用来操作,很方便用来测试
在C语言的环境下,运用尾递归将整数转换为二进制数 在C语言的环境下,运用尾递归将整数转换为二进制数
(5)编写一个程序实现如下功能:从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出,例如输入: ab12cd3456fg,...