二进制转换十进制的简单方法?
谢谢你们了我想学习非常好奇C语言想学习,但是得先把二进制转换学会啊!或有朋友愿意教教我的我感激不尽在这谢谢你们了!谢谢! 展开
方法一:从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右
例:二进制数1101.01转化成十进制
1101.01(2)
=1*2【0】+0*2【1】+1*2【2】+1*2【3】 +0*2【-1】+1*2【-2】
=1+0+4+8+0+0.25=13.25(10)
方法二:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
对于有n位整数,m位小数的二进制数用加权系数展开式表示,可写为:N(2)=an-1×2n-1+an-2×2n-2+……+a1×21+a0×20+a-1×2-1+a-2×2-2+……+a-m×2-m(10)式中aj表示第j位的系数,它为0和1中的某一个数。
例:二进制数1101转化成十进制
1101(2)
=1*2【3】+1*2【2】+0*2【1】+1*2【0】
=13(10)
注意:
1、【】括号内数字代表次方,如【2】为二次方,【-1】为负一次方。
2、()括号内代表进制数,(2)为二进制,(10)为十进制。
扩展资料:
以下为二进制转是进制代码:
int readint(int a) //a 是传入二进制位数
{
int sum = 0;
while (a--) {
sum *=2;
sum += getchar() - '0'; // getchar 读入相应十进制的每一位
}
return sum; // sum 是相应的十进制
}
参考资料来源:百度百科-十进制转二进制
10010110101可以看成是(从后往前读)
1*2^0+0*2^1+1*2^2+0*2^3+1*2^4……+1*2^10
算起来还是比较烦的。
十进制数——二进制数
例:64.125(10)= ? (2)
先看整数位
64/2=32……0
32/2=16……0
16/2=8……0
8/2=4……0
4/2=2……0
2/2=1……0
1/2=0……1
从下往上读,得到整数位为1000000;
再看小数位
0.125*2=0.25(个位数字为0,再取小数点后的数)
0.25*2=0.5 (个位数字为0)
0.5*2=1 (个位数字为1)
一直乘到所得数字正好为1为止,再自上往下依次读出所有的数,则
0.125(10)=0.001(2);
所以64.125(10)=1000000.0001
别有畏惧心理 呵呵
(我是学pascal的,个人衷心希望你也学pascal,NOIP用pascal的比用c++或C的多得多~)
自己再出几道题算一算吧!
用电脑里的计算器验算一下!
10转16再转2 或2转16再转10
10转16 也和 10转2 一样 就不在论述了
主要讲 2和16 的互转
2转16 要诀4位化1位 例如 10101111 可以先看成 1010 1111 然后用8421法则 像1010=8+0+2+0=12(10进制)=c(16进制)因此1010 1111换成16进制就是cf
16转2 就是1化4 反过来就行了
小子 你滴大大的明白?
要是用四位数表示就是0001 0010 0011 0101 0110
0111 咱们一般用十进制,就是加十个数进一位,二进制就是加两个数就进一位 1就是1, 2就是10 ,3就是101, 4就是110 ,5就是111 .....看出来规律了吧,其实并不难
要是用四位数表示就是0001 0010 0011 0101 0110
0111
10010110101可以看成是(从后往前读)
1*2^0+0*2^1+1*2^2+0*2^3+1*2^4……+1*2^10
算起来还是比较烦的。
十进制数——二进制数
例:64.125(10)= ? (2)
先看整数位
64/2=32……0
32/2=16……0
16/2=8……0
8/2=4……0
4/2=2……0
2/2=1……0
1/2=0……1
从下往上读,得到整数位为1000000;
再看小数位
0.125*2=0.25(个位数字为0,再取小数点后的数)
0.25*2=0.5 (个位数字为0)
0.5*2=1 (个位数字为1)
一直乘到所得数字正好为1为止,再自上往下依次读出所有的数,则
0.125(10)=0.001(2);
所以64.125(10)=1000000.0001
别有畏惧心理 呵呵
自己再出几道题算一算吧!
用电脑里的计算器验算一下!
我相信,还有其他算法!
自己推敲吧。