黑马程序员技术交流社区
标题:
怎么将十进制转换为二进制数?
[打印本页]
作者:
OnTheWay_1314
时间:
2015-11-30 11:17
标题:
怎么将十进制转换为二进制数?
请教:怎么将十进制数转换为二进制数?例如十进制20转换为二进制,需要详细的分析过程,谢谢!
作者:
junjunzhang
时间:
2015-12-5 18:37
#include <stdio.h>
/*
刚看了运算符这里,记得
1、可以用一个数m跟1进行按位与运算,即: m&1 ,从而来获得这个数的末位数
2、右移运算符 >> 可以移动指定数位
3、可以配上for循环实现依次右移
因此:
*/
int main(int argc, const char * argv[]) {
// 定义变量并提示用户输入
int num;
printf("请输入一个数:\n");
// 接收用户输入的数
scanf("%d",&num);
// 开始使用按位与 & ,右移位运算符 >> 实现10进制转2进制
for (int i = 0; i < 32; i++) {
// 定义临时变量(貌似相当于空杯子)
int temp = 0;
// 先进行右移(此处的31-i可以通过画图得知)
temp = num >> (31-i);
// 右移位后跟1进行按位与运算,定义一个变量用于接收每次一位后的结果
int n = temp & 1;
// 打印运算后结果
printf("%d",n);
}
printf("\n");
return 0;
}
//效果还行,希望对你有帮助
复制代码
作者:
韦德460
时间:
2015-12-5 19:43
为楼上鼓掌
作者:
独孤求傲
时间:
2015-12-5 20:03
找20距离2的倍数最近的一个值,比如:2,4,6,8,16,32,64.。。。,因为离16进,16对应的2进制是第五位,所以第5位是1,剩下4,4又是2的倍数,对应位置是2,所以结果为10010,这是个比较快的方法,希望采纳
作者:
刘炼1993
时间:
2015-12-5 23:37
哈哈哈哈
作者:
alen2015
时间:
2015-12-6 09:15
利用取余运算,,对2取余后,将得到的余反过来写就是二进制了,,.
作者:
静波cl
时间:
2015-12-6 21:00
倒取余可以 8421码也很实用
作者:
AGHM0312
时间:
2015-12-6 21:48
取余的挺合适的,该36进制以下的都可以了
作者:
OnTheWay_1314
时间:
2015-12-11 13:40
junjunzhang 发表于 2015-12-5 18:37
谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2