如何用c语言寻找十进制数二进制的奇数位.偶数位.任意位
2016-11-15 12:41
260 查看
在编程中,我们经常需要用二进制来进行各种运算,有时甚至需要用到二进制的特定位来进行运算,下面我用c语言来展示如何找你想用的哪一位。首先,我先介绍一个快速将一个数转化成二进制的程序:
在这个程序中,通过按 位与 & (按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。参与运算的两个数均以补码出现)每次通过设定i值移位,循环输出它的单个十进制,就得到它的二进制序列。
比如 数字10:
每次都移动i个长度,然后与1进行与运算,因为不管二进制是0还是1,它与1进行与运算之后仍是本身。
与出每一个二进制并输出就找到了这个数的二进制,同样的道理,我们如果想找一个二进制的奇数位或者是偶数位,只需要改变初始的位数并将i- -变成i=i-2即可。
例如找偶数位:
奇数位:
至于找一个特定的位数,就更加简单,计算出移动的位数,直接移位就可以了。
#include <stdio.h> int main() { int num=0,i=0; char p; scanf("%d",&num); for (i=31; i>=0;i--) { p=(num>>i)&1; printf("%d",p); } return 0; }
在这个程序中,通过按 位与 & (按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。参与运算的两个数均以补码出现)每次通过设定i值移位,循环输出它的单个十进制,就得到它的二进制序列。
比如 数字10:
每次都移动i个长度,然后与1进行与运算,因为不管二进制是0还是1,它与1进行与运算之后仍是本身。
与出每一个二进制并输出就找到了这个数的二进制,同样的道理,我们如果想找一个二进制的奇数位或者是偶数位,只需要改变初始的位数并将i- -变成i=i-2即可。
例如找偶数位:
#include <stdio.h> int main() { int num=0,i=0; char p; scanf("%d",&num); for (i=31; i>=0;i=i-2) { p=(num>>i)&1; printf("%d",p); } return 0; }
奇数位:
#include <stdio.h> int main() { int num=0,i=0; char p; scanf("%d",&num); for (i=30; i>=0;i=i-2) { p=(num>>i)&1; printf("%d",p); } return 0; }
至于找一个特定的位数,就更加简单,计算出移动的位数,直接移位就可以了。
相关文章推荐
- C语言整数的二进制偶数位,奇数位和二进制序列的输出
- c语言编程如何实现-十进制数转换成二进制和输出
- 如何用C语言获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 如何用C语言获得整数所需的最少二进制位数
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中如何求任意一个int型数组的长度?
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- 在c语言环境下 如何计算1到365中,数字之和是奇数的数的个数 并把偶数的个数输出来
- [置顶] 【C语言】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- C语言-进制转换-输入一个字节的整数(0~255),然后将该数的转换为二进制数,然后将奇数位和偶数位互换
- C语言中如何求任意一个int型数组的长度?
- c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- (C语言)实现对任意浮点型数据从十进制到二进制的转换
- 分别输出一个整型数的二进制的奇数位和偶数位
- c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- 【C语言】任意整数转二进制字符串
- C语言中如何求任意一个int型数组的长度?
- 将一个整数的二进制表示的奇数位与偶数位交换位置
- C语言如何接收通过键盘输入的任意长度字符串