C语言 十进制转换成二进制转换方法,以及指定位反转

原创 2013年12月02日 11:28:06
#include <stdio.h>
char * itbs(int n,char * ps);
void show_bstr(char * str);
int inver_end(int number,int bits);
void main(){
      char bin_str[8*sizeof(int)+1];
	  int number;
	  while((scanf("%d",&number))==1){
			itbs(number,bin_str);
			show_bstr(bin_str);
			putchar('\n');
			number=inver_end(number,4);
			show_bstr(itbs(number,bin_str));
	  }
}

char * itbs(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';//掩码,加上'0'的ASCII码编码可以完成该转换
	}
	ps[size]='\0';
	return ps;
}

void show_bstr(char * str){
	int i=0;
	while(str[i]){
		putchar(str[i]);
		if(++i%4==0&&str[i])
			putchar(' ');
	}
}

//指定位反转
int inver_end(int number,int bits){
	int mask=0;
	int bitval=1;
	while(bits-->0){
		mask|=bitval;
		bitval<<=1;
	}
	return number^mask;
}

 结果:

java实现十进制小数转换二进制

整数和小数分别转换. 整数除以2,商继续除以2,得到0为止,将余数逆序排列.22 / 2 11 余 0 11 / 2 5 余 1 5 / 2 2 余 1 2...
  • cds86333774
  • cds86333774
  • 2016年04月21日 18:10
  • 3501

【栈】十进制转换成二进制的过程及算法实现

思想过程: 首先输入一个十进制的数e,然后让这个十进制的数字一直除以2,如果e/2!=0时,把e%2压入栈中,并且令e=e/2,然后继续循环。当e/2==0时,把e的值放入栈中。然后把栈中的元素输出...
  • u010800530
  • u010800530
  • 2013年10月27日 01:06
  • 2190

进制介绍与进制之间的转换

1、什么是进制?   进制就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进...
  • fightfaith
  • fightfaith
  • 2015年10月28日 09:42
  • 1094

怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结

最近一直在看全国计算机三级网络技术这本书,看到第二章的时候,不免会遇到计算机中最常用的进制转换问题。什么IP地址,什么子网掩码,什么网路地址,什么广播地址都会用到二进制和十进制的相互转化,而且最常用的...
  • erlian1992
  • erlian1992
  • 2015年08月07日 17:17
  • 4194

二进制十进制互转---不能忘记的基础知识

一、二进制数转换成十进制数     由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。     例1105 把二进制数1...
  • goluck
  • goluck
  • 2014年12月23日 22:32
  • 583

二进制、八进制、十进制、十六进制之间的转换

二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7   ...
  • Scofy0
  • Scofy0
  • 2015年12月16日 15:27
  • 957

Verilog实现整数与小数部分的二进制转化为十进制

最近在做进制转化的FPGA实现,用到了FPGA的串口通信功能,首先将二进制数值(32定点数,末16位代表小数)由PC写入串口小助手,传给FPGA,再将转化后的结果由串口传到PC端显示,整体的过程比较简...
  • xuanwo11
  • xuanwo11
  • 2017年05月28日 21:47
  • 1489

【c语言】多种方法:将十进制数转化成二进制数,计算其中1的个数

以下是我学到的三种方法,如果大家还有更好的方法,可以讨论交流。 首先,我们得知道十进制怎样转化成二进制,如下图。 得到10的二进制数为1010 那么我们会发现,10%2是判断二进制数的最后一位是0还...
  • qinghe0808
  • qinghe0808
  • 2016年10月11日 14:02
  • 3474

二进制转换为十进制的简便方法

二进制转换为十进制的简便方法。 原来方法: 从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方 得到的结果相加就是答案 例如: 01101011转十进制: ...
  • qq_16767427
  • qq_16767427
  • 2015年03月01日 00:30
  • 4912

Matlab十进制整数转换成二级制补码

有时候我们需要将十进制数字转换成二进制补码形式,可以利用Matlab实现。 实现原理 Matlab自带的函数dec2bin(d, n)可以实现将十进制非负整数转换成二进制数,其中,d为十进制数,n...
  • jzj1993
  • jzj1993
  • 2015年09月20日 23:23
  • 2689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言 十进制转换成二进制转换方法,以及指定位反转
举报原因:
原因补充:

(最多只允许输入30个字)