十进制转二进制编程代码(单片机十进制转二进制的程序)
本文目录
单片机十进制转二进制的程序
#include《stdio.h》#define MAX 32int main(void){ int i=0,n,a; printf("请输入一个十进制整数:\n"); scanf("%d",&n); while (n》0) //循环过程的始终,判断n是否能被2除尽 { a = n%2; //用数组存储每次除以2之后的余数,即断定奇偶性,对应二进制位上数值 i = i+1; n = n/2; } printf("十进制整数转换为二进制数是:\n"); for(; i 》 0; i--) printf("%d",a); printf("\n"); return 0;}
C语言 将十进制数转化为二进制数 程序代码
分类: 电脑/网络 》》 程序设计 》》 其他编程语言 问题描述: 简单的最好,目前只学过数组和简单的语句,刚入门不久 解析: #include 《stdio.h》 void main() {int a; scanf(\"%d\",&a);输入一个10进制数。 int result=0;存储a的二进制结果。 int p=1;p=1表示个位数 do { int b=a%2;b是余数,第一个余数是二进制的个位。 result=result+p*b; p=p*10;*10表示下个是10位数。 a=a/2; }while(a); printf(\"\\n%d\\n\",result); } 程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。
C语言十进制转二进制代码
#include 《iostream》using namespace std;int main() { int decimal, binary, index = 0; cout 《《 "Enter decimal number: "; cin 》》 decimal; while (decimal 》 0) { binary = decimal % 2; decimal /= 2; index++; } cout 《《 "The binary equivalent is: "; for (int i = index - 1; i 》= 0; i--) { cout 《《 binary; } cout 《《 endl; return 0;}上面的程序首先要求用户输入要转换的十进制数。进行转换时,我们使用了一个while循环来不断将十进制数除以2,直到它变为0为止。在每次迭代中,我们都会将余数存储在二进制数组中,并在这之前将十进制数除以2。最后,我们遍历二进制数组并输出元素(即将二进制数转换为字符串)。
java十进制转二进制代码怎么解决
下面是根据十进制数转二进制数的算法所写的一段Java程序示例代码:
import java.math.BigDecimal;
public class Test {
public static void main(String args) {
Test t = new Test();
double d = 8;
String s = t.decimal2BinaryStr(d);
System.out.println("十进制数"+d+"转成二进制数为:"+s);
}
/**
* 十进制数转二进制数
* @param d 十进制数
* @return 十进制数转换成二进制的字符串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}
/**
* 十进制整数部分转二进制数
* @param d 十进制数
* @return 十进制整数部分转换成二进制的字符串
*/
public String decimal2BinaryStr_Inte(double d){
// return Integer.toBinaryString((int)d);
/*
* 本来利用上面的Integer.toBinaryString(int)就可以得到整数部分的二进制结果,
* 但为了展示十进制转二进制的算法,现选择以下程序来进行转换
*/
String result = "";
long inte = (long)d;
int index = 0;
while(true){
result += inte%2;
inte = inte/2;
index++;
if(index%4 == 0){
result+=" ";
}
if(inte==0){
while(index%4!=0){
result+="0";
index++;
}
break;
}
}
char c = result.toCharArray();
char;
for(int i=c.length; i》0; i--){
cc;
}
return new String(cc);
}
/**
* 十进制小数部分转二进制
* @param d 十进制数
* @return 十进制小数部分转换成二进制小数的字符串
*/
public String decimal2BinaryStr_Deci(double d){
return decimal2BinaryStr_Deci(d, 0);
}
/**
* 十进制小数部分转二进制
* @param d 十进制数
* @param scale 小数部分精确的位数
* @return 十进制小数部分转换成二进制小数的字符串
*/
public String decimal2BinaryStr_Deci(double d, int scale){
double deci = sub(d,(long)d);
if(deci==0){
return "";
}
//为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度
if(scale==0){
scale = (String.valueOf(deci).length()-2)*4;
}
int index = 0;
StringBuilder inteStr = new StringBuilder();
double tempD = 0.d;
while(true){
if(deci==0 || index==scale){
while(index%4!=0){
inteStr.append("0");
index++;
}
break;
}
if(index==0){
inteStr.append(".");
}
tempD = deci*2;
inteStr.append((int)tempD);
deci = sub(tempD ,(int)tempD);
index++;
if(index%4 == 0){
inteStr.append(" ");
}
}
return inteStr.toString();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}
例如将十进制数1234.5转成二进制数为:0100 1101 0010.1000
更多文章:
御宅书屋 自由的小说屋(《龙珠超》中为什么兰琪会在天津饭的武道馆中出现)
2024年7月3日 21:40
火影忍者中文版国语全集在线观看(在边个网址看火影忍者中文版全集)
2024年7月12日 01:22
pop3端口号(vip.qq.com的smtp和pop3地址分别是什么)
2023年5月14日 21:40
好妈妈3在线观看完整版(《小欢喜》三位好妈妈结局,刘静遗憾去世,最幸福的是她)
2024年5月20日 05:35
qq照片墙好看图片(求手机QQ名片照片墙8图或者9图(连背景统一的),要男生的,好看的)
2024年6月27日 06:30