进制转换和按位运算
来源:互联网 发布:淘宝商家规则 编辑:程序博客网 时间:2024/06/06 07:06
#include <cstdio>
#include <cstdlib>
#include <cstring>
int btod(char *bstr);
int dtob(int d, char *bstr);
int main(int argc, char **argv)
{
char bstr[64] ="";
memset(bstr,0,sizeof(bstr));
int d = 0;
// printf("输入二进制数: ");
//scanf("%s", bstr);
//if ((d = btod(bstr)) < 0)
// printf("error!\n");
//else
// printf("二进制 %s 转十进制为 %d\n", bstr, d);
d = 0;
//bzero(bstr, sizeof(bstr));
memset(bstr,0,sizeof(bstr));
printf("十进制数: ");
scanf("%d", &d);
int j = d;
if ((dtob(d, bstr)) < 0)
printf("ÊäÈëÓÐÎó\n");
else
printf("十进制 %d 转二进制为 %s\n", d, bstr);
//x >> (k-1) & 1
printf("%d\n",(j >>0&1));
printf("%d\n",(j >>1&1));
printf("%d\n",(j >>2&1));
printf("%d\n",(j >>3&1));
printf("%d\n",(j >>4&1));
return 0;
}
int btod(char *bstr)
{
int d = 0;
unsigned int len = strlen(bstr);
if (len > 32)
return -1;
len--;
int i = 0;
for (i = 0; i <= len; i++)
{
d += (bstr[i] - '0') * (1 << (len - i));
}
return d;
}
int dtob(int d, char *bstr)
{
if (d < 0)
return -1;
int mod = 0;
char tmpstr[64] ="";
memset(tmpstr,0,sizeof(tmpstr));
memset(bstr,0,sizeof(bstr));
int i = 0;
while (d > 0)
{
mod = d % 2;
d /= 2;
tmpstr[i] = mod + '0';
i++;
}
unsigned int len = strlen(tmpstr);
for (i = 0; i < len; i++)
{
bstr[i] = tmpstr[len - i - 1];
}
return (int)len;
}
#include <cstdlib>
#include <cstring>
int btod(char *bstr);
int dtob(int d, char *bstr);
int main(int argc, char **argv)
{
char bstr[64] ="";
memset(bstr,0,sizeof(bstr));
int d = 0;
// printf("输入二进制数: ");
//scanf("%s", bstr);
//if ((d = btod(bstr)) < 0)
// printf("error!\n");
//else
// printf("二进制 %s 转十进制为 %d\n", bstr, d);
d = 0;
//bzero(bstr, sizeof(bstr));
memset(bstr,0,sizeof(bstr));
printf("十进制数: ");
scanf("%d", &d);
int j = d;
if ((dtob(d, bstr)) < 0)
printf("ÊäÈëÓÐÎó\n");
else
printf("十进制 %d 转二进制为 %s\n", d, bstr);
//x >> (k-1) & 1
printf("%d\n",(j >>0&1));
printf("%d\n",(j >>1&1));
printf("%d\n",(j >>2&1));
printf("%d\n",(j >>3&1));
printf("%d\n",(j >>4&1));
return 0;
}
int btod(char *bstr)
{
int d = 0;
unsigned int len = strlen(bstr);
if (len > 32)
return -1;
len--;
int i = 0;
for (i = 0; i <= len; i++)
{
d += (bstr[i] - '0') * (1 << (len - i));
}
return d;
}
int dtob(int d, char *bstr)
{
if (d < 0)
return -1;
int mod = 0;
char tmpstr[64] ="";
memset(tmpstr,0,sizeof(tmpstr));
memset(bstr,0,sizeof(bstr));
int i = 0;
while (d > 0)
{
mod = d % 2;
d /= 2;
tmpstr[i] = mod + '0';
i++;
}
unsigned int len = strlen(tmpstr);
for (i = 0; i < len; i++)
{
bstr[i] = tmpstr[len - i - 1];
}
return (int)len;
}
0 0
- 进制转换和按位运算
- 位运算 进制转换
- 进制转换,位运算
- c#中的进制转换和位运算
- 进制转换与位运算
- Java 进制转换、位运算、逻辑运算
- 进制转换与位运算
- 进制转换、位运算、逻辑运算
- ******************** 进制和位运算 ********************
- 进制和位运算的基本知识:
- 笔记 - Java 进制和位运算
- [Java]转义字符、进制转换、数据类型及其转换、位运算符、位移运算符
- Java通过位运算实现10-16进制转换
- C位运算分析及进制转换
- HDU Find Small A(进制转换 位运算)
- 进制转换与Java的位运算操作
- 位运算,大小写转换
- 按位运算和作用
- 面试题:求一个自然数的开方,要求不能用开方函数,开方的数必须是整数才输出,否则给出提示
- 常用IM协议对比分析
- 求出任意一年的日历。(含注释)
- hibernate的映射关系
- linux tar 命令
- 进制转换和按位运算
- ProtocolBuffer for Objective-C 运行环境配置
- 查看Android ADT 版本号,离线下载ADT
- [LeetCode]Maximum Product Subarray
- Mac下将libpomelo连接到Cocos2d-x的解决方案
- 阿里云主机 -- Ubuntu 12.04 - 创建用户失败的解决方法
- Beginning Adaptive Layout Tutorial
- 设计模式【单例模式】
- poj 2796(单调栈)