博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数制系统
阅读量:5231 次
发布时间:2019-06-14

本文共 2814 字,大约阅读时间需要 9 分钟。

 

一、基础

1、计算机系统及数字设备使用2进制

2、世界上除了十进制,还存在多种其它进制如8,16,60,1024

3、人工智能之父:图灵

4、N进制,就有N个数字

2 -> 0 1

8->  0 1 2 3 4 5 6 7 

10-> 0 1 2 3 4 5 6 7 8 9

16-> 0 1 2 3 4 5 6 7 8 9 A B C D E F (颜色) #ff0000

5、N进制,逢N进1

10+5=15

二、十进制转换成N进制

除N取余法

(35)10=(100011)2

(108)10=(    )2

(256)10=(100000000)2

0->1 1 

1->2 10

2->4 100

3->8 1000

1 -> 1

11 ->3

111 ->7

1111 ->15

11111->31

111111->63

##########################

(35)10=(  43  )8

(108)10=(  154  )8

(256)10=(   )8

##########################

(35)10=(   )16

(108)10=(   )16

(256)10=(   )16

##########################

三、N进制转换成十进制

按位权相加法

(100010)2=(           )10

=1*2^5 + 1*2^1

=32+2

=34

(1111101)2=(           )10

=2^6+2^5+2^4+2^3+2^2+2^0

=64+32+16+8+4+1

=20+40+65

=125

##########################

(147)8=(           )10

=1*8^2+4*8^1+7*8^0

=64+32+7

=103

##########################

(1AC)16=(           )10

=1*16^2+10*16+12

=256+160+12

=428

 

 

################

(177)8=(   )2

(177)8=(X)10=(  )2

通过十进制作为媒介

 

(256)10=(100000000)2=(400)8=(100)16

(ABC)16=()2=()8=(2748)10

(10101010)2=(170)10=(252)8=(AA)16 

2^7+2^5+2^3+2^1

=128+32+8+2

=170

ABC

=10*16^2+11*16+12

=2560+176+12

=2560+188

=2748

有8桶酒,其中一桶有毒,5分钟毒性发作,请问用多少之小白鼠在5分钟时间测试出那一桶有毒。

 

四、二进制与八、十六进制间的快速转换

4.1、二进制与八进制之间的转换

1位8进制等于3位2进制

11010101=011,010,101=325

10111101010101=010,111,101,010,101=27525

 

(163)8=(      )2

163=001,110,011=1110011

70013=111000000001011

 

4.1、二进制与八进制之间的转换

11010101=1101,0101=13,5=D5

10111101010101=0010,1111,0101,0101=2,15,5,5=2F55

 

FFF=1111 1111 1111 

1C9C=1110010011100

 

五、小数与进制

 5.1、十进制小数位转N进制小数

乘N取整

(179.48)10=整数部分263,小数部分365=(263.365)8

0.48*8=3.84=3    0.84

0.84*8=6.72=6    0.72

0.72*8=5.76=5    0.76

.

.

.

(35.35)10=(43.263)8=(100011.010110011)2

 

35.35=整数43,

0.35*8=2.8 2 0.8

0.8*8=6.4 6 0.4

0.4*8=3.2 3 0.2

 

0.35*2=0.7 0

0.7*2=1.4  1

0.4*2=0.8  0

0.8*2=1.6   1

0.6*2=1.2    1

0.2*2=0.4    0

0.4*2=0.8     0

0.8*2=1.6     1

0.6*2=1.2      1

0.2*2=0.4      0

小数位同样可以使用421,与8421的办法转换.

 

5.2、N进制小数位转十进制小数

按负位权相加

110.101=1*2^2+1*2^1=4+2=6

1*2^-1+1*2^-3=0.5+0.125=0.625

=6.625

11.0101=(3.3125)10

 2^1+2^0=3

2^-2+2^-4=0.25+0.0625=0.3125

 

练习:

 

(73.99)10=(1001001.111111)2=(111.77)8=(49.FC)16

0.99*2=1.98 1

0.98*2=1.96 1

0.96*2=1.92 1

0.92*2=1.84  1

0.84*2=1.68  1

0.68*2=1.36   1

 

 

 

95.27=1011111.010001=001,011,111.010,001=137.21

0101,1111.0100,0100=5F.44

95=1011111

0.27=10001

 

  =0.27*2=0.54    0

  =0.54*2=1.08    1

  =0.08*2=0.16    0

  =0.16*2=0.32    0

  =0.32*2=0.64    0

  =0.64*2=1.28    1

 

 

  • 5.3、进制取余数的代码

 

 /取进制位上的数值 

function getRemainder($num, $bin, $pos, &$result = 0){ 
//author lianq.net 
//$num 数值,十进制 
//$bin 要转换的进制 
//$pos 位数 
$real_len = log($num, $bin);//对数,求原值长度 
$floor_len = floor($real_len);//舍去求整 
$base = pow($bin, $pos-1);//基数 
$divisor = pow($bin,$pos);//除数 
if($num >= $divisor){ 
$new_num = $num % pow($bin, $floor_len); 
getRemainder($new_num, $bin, $pos, $result); 
}else{ 
$result = floor($num / $base); 
return $result; 
//比如,数值16转换为9进制时,它的第一位上的数值是多少? 
$a = getRemainder(16,9, 1); 
echo $a;//输出7 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/zzqwe/p/7598679.html

你可能感兴趣的文章
log4net学习
查看>>
在Eclipse中配置Maven
查看>>
线段树的坑
查看>>
图片乱换
查看>>
C#调用ADOX创建ACCESS数据文件后关闭连接
查看>>
VUE常见的语法
查看>>
navicat premium各个版本及激活
查看>>
Array.Sort 谷歌内核 数组大小超过10 排序字段都一致 返回的数组非原数组
查看>>
实例六分页处理
查看>>
转载 失踪
查看>>
P1113 杂务
查看>>
RQNOJ:PID30 / [stupid]愚蠢的矿工☆(树形背包)
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q141-Q143)
查看>>
Effective C++ 37绝不重新定义继承而来的缺省参数值
查看>>
翻译 - 【Dojo Tutorials】Fundamentals 1 Classy JavaScript with dojo/_base/declare
查看>>
EasyDarwin做转发延时太大?
查看>>
浅谈ldap以及jndi
查看>>
Python – locals和globals
查看>>
angular 1.6路由
查看>>
[原创]java WEB学习笔记28: 会话与状态管理Cookie 机制
查看>>