请教几个编程2进制10进制数转化的问题

1 What is the 8-bit (unsigned) binary representation of the decimal number 32?
2What is the 6-bit signed binary representation of the decimal number -29?
3What is the decimal value of the signed 6-bit binary number 101110?

第一个是问32怎么用8位的unsigned2进制数表达,直接换算的话是100000只有6位啊..
第二问-29 变成sign的6位2进制数是多少
第三问是 signed 101110变成10进制数是多少. 我感觉不是直接变成46... 因为是sign的..

谢谢大家

第一个,无符号的8位二进制表示32,无符号,所以,符号位是0,即是原码,所以结果是:

00100000

第二个,有符号的6位二进制表示-29,计算机里,负数是以补码方式存放的,首先,符号位是1,然后符号位不变,其余原码按位取反再加1,所以,-29的6位二进制是:

100011,计算方法:符号位为1,29的原码11101,按位取反之后为00010,再加1为00011,再加上符号位,就是100011

第三个,有符号数,所以,第一位是符号位,符号位为1,说明它是个负数,它是以补码方式存放的,所以,符号位不变,其余各位按位取反(01110->10001),再加1,得到10010,这个数是18,所以,有符号的6位二进制101110表示的是-18。

另外,如果你的电脑是WIN7的,直接打开计算器,切换到程序员模式,就可以在各进制之间转换,比如最后一个问题,我们从二进制推算出10进制为-18,你可以反过来验证一下,直接输入-18,看下面的二进制表示,就是问题里面的101110,如图:

注意红框里的6位数,就是-18的6位二进制表示

其余的,你自己验证一下

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-17
1、00100000
2、100011
3、如果一个字节是8bit,那么101110实际上是00101110=46,如果你的一个字节是6bit的,那么应该是-14
第2个回答  2013-09-17
二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方,不过次方要从0开始。相反,用十进制的13除以2,每除一下将余数就记在旁边,最后按余数从下向上排列就可得到1101。 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为“按权相加”法。 2的0次方是1 2的1次方是2 2的2次方是4 2的3次方是8 2的4次方是16 2的5次方是32 2的6次方是64 2的7次方是128 2的8次方是256 2的9次方是512 2的10次方是1024 2的11次方是2048 2的12次方是4096 2的13次方是8192 2的14次方是16384 2的15次方是32768

请教几个编程2进制10进制数转化的问题
另外,如果你的电脑是WIN7的,直接打开计算器,切换到程序员模式,就可以在各进制之间转换,比如最后一个问题,我们从二进制推算出10进制为-18,你可以反过来验证一下,直接输入-18,看下面的二进制表示,就是问题里面的101110,如图:注意红框里的6位数,就是-18的6位二进制表示 其余的,你自己验证...

请教几个编程2进制10进制数转化的问题
另外,如果你的电脑是WIN7的,直接打开计算器,切换到程序员模式,就可以在各进制之间转换,比如最后一个问题,我们从二进制推算出10进制为-18,你可以反过来验证一下,直接输入-18,看下面的二进制表示,就是问题里面的101110,如图:注意红框里的6位数,就是-18的6位二进制表示 其余的,你自己验证...

急!!关于2进制和10进制,补码的转化问题!
一。6=2平方+2的一次方,所以6化成8位二进制数=00000110 41=32+8+1;41=00101001;-41=10101001 二。6的补码=00000110(正数的补码不变)-41的补码=11010110(负数的补码,符号为不变,其余位取反末位加一)三。相加=11011100 四。-92

C语言2进制和十进制问题
首先讲个概念吧,有符号int型数据的取值范围是-32768~32767,这个数是循环的 举个例子 int a=32767,那么:32767+1 = -32768; 32767+2 = -32767;依次类推,在你列举的代码中,a=1000000000000000;这不是二进制表示,得到的结果或许是凑巧 如果是a=0x8000;才表示二进制1+15个0,0x8000转换为10进...

10进制和二进制之间怎么转换
要将二进制数为十进制数,只要反过来算就可以了。人类算数采用十进制,可能跟人类有十根手指有关。亚里士多德称人类普遍使用十进制,只不过是绝大多数人生来就有10根手指这样一个解剖学事实的结果。实际上,在古代世界独立开发的有文字的记数体系中,除了巴比伦文明的楔形数字为60进制,玛雅数字为20进制...

分别写一函数把二进制串转化为10进制数,把10进制数转化为16进制数
如果参数只要两位数的整数,那么很简单。代码如下:char buffer [3]; \/\/用于存放转换好的十六进制字符串。由于只要支持2位整数,所以长度3即可 char * inttohex(int aa){ if (aa \/ 16 < 10) \/\/计算十位,并转换成字符 buffer[0] = aa \/ 16 + '0';else buffer[0] = aa \/ 16 - ...

C语言,利用函数实现将二进制数转化为十进制数并实现相加。
1、2进制10进制的转换方法:二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13 附加一个八进制转十进制的例子吧: 507(八进制转10进制): 5×8的2次幂+0×8的1次幂+7×8的0次幂= 5×64+0×8+7×1=327(10进制) 2、例程...

二进制与十进制数互相转换的方法及原理
2. **二进制转十进制 将二进制数转换为十进制数,通过位权相加法实现。具体步骤如下:将二进制数从右至左,每一位上的数字乘以2的幂次方,幂次方依次递增。 将所有乘积相加,即为十进制数。 例如,将二进制数1101.101转换为十进制:1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 =...

写一个2进制和10进制数相互转换的程序
int main(){ char a[50];int n,j,i,sum=0,t=0,p=1;printf("输入一个2进制数:");gets(a);n=strlen(a);for(i=n-1;i>=0;i--){ p=1;t=(a[i]-48);if(i==n-1){ p=1;} else { for(j=0;j<n-i-1;j++){ p=p*2;} } sum+=t*p;} printf("对应的10进制...

2进制数,10进制数,16进制数,8进制数之间的转换
N进制到10进制也就是当一个数为abcdef...(Y个未知数,且a为任何数)时a×(Y-1)次方+b×(y-1-1)次方...后相加 10进制转化成2进制则是:比如一个数为7则:7/2=3...1↑从 3/2=1...1|下 1/2=0...1|往 则2进制为111 ↑ ↑ 上 2进制 余数 10进制...

相似回答