c语言 整数转二进制取位,C语言位运算--将整数转换成二进制串以及反转整数后N位...
// c primer plus上的内容,位运算
#include char * itobs (int n,char * ps);
void show_bstr(const char *);
int invert_end(int num,int bits);
int main(void){
char bin_str[8*sizeof(int)+1];
int number;
puts("Enter integers and see them in binary.");
puts("Non-numberic input terminates program.");
while(scanf("%d",&number)==1){
itobs(number,bin_str);
printf("%d is \n",number);
show_bstr(bin_str);
putchar('\n');
number = invert_end(number,4);
printf("Inverting the last 4 bits gives\n");
show_bstr(itobs(number,bin_str));
putchar('\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;
}
//4位一组显示二进制字符串
void show_bstr(const char * str){
int i=0;
while(str[i]){
putchar(str[i]);
if(++i %4 ==0 && str[i])
putchar(' ');
}
}
//反转数最后N位
int invert_end(int num,int bits){
int mask=0;
int bitval=1;
while(bits-->0){
mask |=bitval;
bitval <<=1;
}
return num^mask;
}
c语言 整数转二进制取位,C语言位运算--将整数转换成二进制串以及反转整数后N位...相关推荐
- c语言 整数转换成二进制 模仿c++的 _itoa() 函数
_itoa() 函数 头文件 :#include <stdlib.h> char *_itoa(int _value, char* _Dest, int _Radix); 功能:实现整数转 ...
- 如何把一个整数转换成二进制
下面介绍一种把键盘输入的整数转换成二进制的方法:程序如下: #include <stdio.h>void int2bin1(int num) {int i;for(i = 1; i < ...
- 实现 十进制整数转换成二进制,八进制,十六进制
整型有4种进制形式: 1.十进制: 都是以0-9这九个数字组成,不能以0开头. 2.二进制: 由0和1两个数字组成. 3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始. ...
- C语言十进制转换成二进制、八进制、十六进制
一.绪论 十六进制(Hexadecimal):在数学中是一种逢16进1的进位制.一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15. 十进制(Decimal System):每相 ...
- C语言十进制转换成二进制源码
把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...
- 十进制转二进制转换c语言程序,c语言编程如何实现-十进制数转换成二进制和 – 手机爱问...
2006-10-10 (1).将十进制正整数转换成k进制(2<=k<=9)的数字输出.例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示1000). (2).请编写函数vo ...
- 格雷码转换成二进制c语言程序,格雷码与二进制的转换程序
/* 格雷码与二进制的转换程序 * 本程序采用递推的方法进行推导,可以转换0~2147483647之间的数(1~31位) * 推导方式如下(以三位格雷码为例): * 序号 格雷码 格雷码实值 二进制码 ...
- 十进制转换成二进制——C语言
利用数组和调用函数编写一个十进制转换成二进制的程序 #include "stdio.h" int main(){int i = 0, n , a[32];printf(" ...
- C语言 十进制转换成二进制
/*十进制转换成二进制*/#include<stdio.h>int main(int argc,char argv[]){int num,i;scanf("%d",&a ...
最新文章
- 微生物培养的福音:一个直接用16S rDNA序列来预测其培养基配方的网站!!!...
- 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
- 送一台电脑显示器,我每天办公都用它,安利!
- asp连接oracle 服务端,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
- java 使用 new Date() 和 System.currentTimeMillis() 获取当前 时间戳
- #分布式系统架构之# 事件驱动模式以及与之匹配的长时间处理过程讨论
- html图片实现左右滑动,jquery实现左右滑动式轮播图
- DICOM图像像素值、灰度值与CT值
- android开发,动态图标,Android动态更新APP图标
- 探寻埋藏在心底的梦想,社科院与杜兰大学金融管理硕士项目伴你同行
- iphone 如何给cydia添加中文源和威锋源
- Shopee关键词广告投放策略解析-马六甲erp
- 分享一个计算机视觉图片或者视频的标注神器
- 【宝藏分享】自从用了这款PPT插件,小伙伴们都跪着看我
- 通过命令行运行matlab代码
- 2023年国家司法考试报名条件有哪些 非法学可以考吗
- 照片动感影集制作软件哪个好?如何快速制作精美、酷炫的效果?
- mysql errorcode 1366_mysql插入emoji表情报 error code [1366]
- 看懂了一点傅里叶变换的原理
热门文章
- servlet请求的执行过程_Springmvc执行流程
- 重构是什么、为什么要重构
- 求生之路显示服务器指令,求生之路2控制台指令..doc
- linux 编辑文件vim,linux下通过vim编辑文件的方法
- OpenGL ES (三)着色器和程序
- SQL 2019——新特征
- 从Android上的相机裁剪图像
- laravel生成php代码,laravel代码生成器
- python print format_Python中的format格式化输出
- 微信抢红包算法 java_java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...