24小时热门版块排行榜    

查看: 2076  |  回复: 14

晴间多云

木虫 (正式写手)

[求助] 开头为1的二进制数如何转换为十进制数 已有2人参与

例如:11101011 ,书上说首位是零的话,说明是一个负整数,是这样吗?
该如何转换为十进制?
回复此楼
在生活中要学会独立思考和解决一些问题!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Leodom

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
晴间多云: 金币+10, ★★★很有帮助, 回答的很详细 2014-12-15 23:14:42
整数二进制转换为十进制:
首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。
 先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到的就为十进制,比如1010转换为十进制为10
若二进制补足位数后首位为1时,就需要先取反再换算:例如,11101011,首位为1,那么就先取反吧:-00010100,然后算一下10100对应的十进制为20,所以对应的十进制为-20。

[ 发自小木虫客户端 ]
2楼2014-12-15 22:32:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晴间多云

木虫 (正式写手)

引用回帖:
2楼: Originally posted by Leodom at 2014-12-15 22:32:48
整数二进制转换为十进制:
首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。
 先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到 ...

但是反过来算呢?把-20转换成二进制呢?好像是11101100
这个是我用笔记本上的计算器算的:
开头为1的二进制数如何转换为十进制数
1.png


开头为1的二进制数如何转换为十进制数-1
2.png

在生活中要学会独立思考和解决一些问题!
3楼2014-12-15 23:17:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晴间多云

木虫 (正式写手)

引用回帖:
2楼: Originally posted by Leodom at 2014-12-15 22:32:48
整数二进制转换为十进制:
首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。
 先看首位是0的正整数,补齐位数以后,将二进制中的位数分别将下边对应的值相乘,然后相加得到 ...

为什么反过来算结果不一样呢?
在生活中要学会独立思考和解决一些问题!
4楼2014-12-15 23:18:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hoddescle

木虫 (小有名气)

老和部队

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
晴间多云: 金币+10, ★★★很有帮助, 好方法,但还有疑问 2014-12-16 10:27:00
二进制数数位从左到右的编号为n,n-1,....1,对应数字为a_n,a_(n-1)....a_1 其中_i 表示下标
转化成10进制
从左边第二位起求和
2^(n-2)*a_(n-1)+2^(n-3)*a_(n-2)....+2^1*a_2+2^0*a_1

∑ 2^(i-1)*a_i
然后在看第一位的符号
在编程中可以这样使用
sgn(a_n-0.5)
第一位-0.5,得到的数字要么是0.5,要么是-0.5,使用符号函数,取对应的符号
忠贤随明主,奸佞觅昏君
5楼2014-12-16 10:11:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晴间多云

木虫 (正式写手)

引用回帖:
5楼: Originally posted by hoddescle at 2014-12-16 10:11:35
二进制数数位从左到右的编号为n,n-1,....1,对应数字为a_n,a_(n-1)....a_1 其中_i 表示下标
转化成10进制
从左边第二位起求和
2^(n-2)*a_(n-1)+2^(n-3)*a_(n-2)....+2^1*a_2+2^0*a_1

∑ 2^(i-1)*a_i
然后在 ...

按你所说:(11101011)
n=8,从第一位到第七位依次求和(0就省略了):1×2º+1×2¹+1×2³+1×2^5+1×2^6=1+2+8+32+64=107;sgn(a8-0.5)=sgn(1-0.5)=+1
于是(11101011)2=(+107)10
这样算出来是正数啊?
在生活中要学会独立思考和解决一些问题!
6楼2014-12-16 10:47:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晴间多云

木虫 (正式写手)

引用回帖:
5楼: Originally posted by hoddescle at 2014-12-16 10:11:35
二进制数数位从左到右的编号为n,n-1,....1,对应数字为a_n,a_(n-1)....a_1 其中_i 表示下标
转化成10进制
从左边第二位起求和
2^(n-2)*a_(n-1)+2^(n-3)*a_(n-2)....+2^1*a_2+2^0*a_1

∑ 2^(i-1)*a_i
然后在 ...

而且为什么这样算出来的结果和2楼的结果不一样呢?2楼的那种方法和百度文库上的一样,能回答一下吗?
在生活中要学会独立思考和解决一些问题!
7楼2014-12-16 10:53:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

whflw

木虫 (初入文坛)

直接用0xFF-x+1就可以得到原来的真值了,前面记得加负号
8楼2014-12-16 12:13:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hoddescle

木虫 (小有名气)

老和部队

引用回帖:
7楼: Originally posted by 晴间多云 at 2014-12-16 10:53:07
而且为什么这样算出来的结果和2楼的结果不一样呢?2楼的那种方法和百度文库上的一样,能回答一下吗?...

对不起,我忘记了,有个+0和-0的问题,
我也忘记怎么处理这两个0了,
至于n进制的就是
∑ n^(i-1)*a_i
这样子算
比如十进制的32就是10^1*3+10^0*2
其他的进位一样

» 本帖已获得的红花(最新10朵)

忠贤随明主,奸佞觅昏君
9楼2014-12-16 21:34:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晴间多云

木虫 (正式写手)

引用回帖:
8楼: Originally posted by whflw at 2014-12-16 12:13:20
直接用0xFF-x+1就可以得到原来的真值了,前面记得加负号

可以说详细一点吗?没看懂哎。。。
在生活中要学会独立思考和解决一些问题!
10楼2014-12-16 22:11:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 晴间多云 的主题更新
信息提示
请填处理意见