位运算实现二进制转换 C语言
来源:互联网 发布:淘宝视频教程全集 编辑:程序博客网 时间:2024/06/08 20:18
位运算实现二进制转换
& 00000001
__________
& 00000010
__________
*/
代码:
#include <stdio.h>void change_binary(char,char []);void print_binary(char []);void main(){char binary[8],decimal;decimal=-2;change_binary(decimal,binary);print_binary(binary);}void change_binary(char decimal,char binary[]){int i,temp=128;for(i=0;i<8;i++){binary[i]=(decimal&temp)>>(7-i);temp/=2;}}void print_binary(char binary[]){int i;for(i=0;i<8;i++)printf("%d",binary[i]);}
原理是取出一个十进制数在内存中听每一位的二进制数的数字,是0还是1,是用&(按位与)运算符一位一位的求,第一次求第一位的数字,第二次第二位,然后依次求出所有的,然后将他们保存起来,然后再输出。
比如:
(数)进制
(11)10=(00001010)2
比如现在要将十进制11转换成二进制(实际上不用转,因为数据在内存里面就是用二进制存储的,所以我们只要取出每一位就好了)
char a=11&1;
/*
这里是取十进制11的第一位(11)10=(00001011)2
(1)10=(00000001)2
& 00000001
__________
00000001
(00000001)2=(1)10
这个(1)10就是十进制11的最右边一个二进制位*/
/*
这里取第二位
(11)10=(00001011)2
(2)10=(00000010)2
& 00000010
__________
00000010
(00000010)2=(2)10
对吗?不对,应该还要将那个二进制右移1位
00000010>>1=00000001
(00000001)2=(1)10
*/
阅读全文
0 0
- 位运算实现二进制转换 C语言
- 二进制转换及位运算
- 位运算实现 十进制(正负)转换成二进制
- C语言中用位运算构建特定二进制数学习
- C语言实现二进制与十进制转换
- 十进制二进制转换,C语言实现
- 应用位运算 c语言实现比较:
- C语言位运算实现循环移位
- C语言位运算
- C语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- c语言位运算
- C语言位运算
- C语言位运算
- 综合练习-介绍家乡
- 单源最短路径--Bellman-Ford算法及SPFA
- 安装cocoapods
- LeetCode 0001
- Kotlin极简教程:第10章 Kotlin与Java互操作
- 位运算实现二进制转换 C语言
- 【福利】日语学习资料大集合!6G资源!
- 重庆“背篓夫妻”相伴29年 夫妻二人互为腿眼
- 浅谈苏联军工水平
- python里预先编译正则表达式提高效率
- namenode正处于safemode状态,怎么处理?
- h5开发通用sass基础配置文件
- Python网络爬虫与信息提取-Day13-(实例)淘宝商品比价定向爬虫
- 数据结构学习笔记:二叉树