请教关于C语言学习中的二进制八进制和十六进制的问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:37:31
问题:
我知道10的二进制在内存中是0000000000001010
我是1+1+1+这样一个一个加的.
请问,有没有规律呢?
如果我想把20000转换成2进制形式,怎么转换?要是30000呢?????
还有就是2进制8进制和16进制之间的互相转换,请大家帮忙说得详细一些!

这是由进制数的位权决定的,位权就是某个固定位置上的计数单位
2进制转换为10进制
1000001(2)=1*2^6+0*2^5+…+1*2^0=65(10)
8进制转为10进制
101(8)=1*8^2+0*8^1+1*8^0=65(10)(“8^2”表示8的平方)
16进制转为10进制
41(16)=4*16^1+1*16^0=65(10)

10进制数N和其他d进制之间的转换方法很多,其中一个简单算法基于下列原理:
N=(N div d)*d+N mod d (其中 div 为整除运算,mod 为求余运算)

10进制转换为2进制:(除2取余,然后倒序)
N……………N div 2…………N mod 2
65…………65/2=32……………1
32…………32/2=16……………0
16…………16/2=8 ……………0
8…………8/2=4 ……………0
4…………4/2=2 ……………0
2…………2/2=1 ……………0
1…………1/2=0 ……………1 则:
65(10)=1000001(2)

10进制换为8进制:
N……………N div 8…………N mod 8
65…………65/8=8……………1
8…………8/8=1 ……………0
1…………1/8=0 ……………1
65(10)=101(8)

10进制转换为16进制:
N……………N div 16…………N mod 16
65…………65/16=4……………1
4…………4/8=0 ……………4
65(10)=41(16)

首先肯定有的...
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2