我是
靠谱客 的博主
清新鸡 ,最近开发中收集的这篇文章主要介绍
【学习总结】数制码制 ,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
数制与码制
内存容量单位换算表
1.1 进位计数制
一般来说,如果数制只采用R个基本符号,则称为基R数制,编码符合逢R进位。以下, 是对R进制数N的按权展开多项式,n表示整数部分的位数,m表示小数部分的位数。
N
=
D
n
−
1
R
n
−
1
+
D
n
−
2
R
n
−
2
+
.
.
.
+
D
0
R
0
+
.
.
.
+
D
−
m
R
−
m
.
N=D_{n-1}R^{n-1}+D_{n-2}R^{n-2}+...+D_{0}R^{0}+...+D_{-m}R^{-m}.
N = D n − 1 R n − 1 + D n − 2 R n − 2 + . . . + D 0 R 0 + . . . + D − m R − m .
二进制 八进制 十进制 十六进制 0000 00 0 0 0001 01 1 1 0010 02 2 2 0011 03 3 3 0100 04 4 4 0101 05 5 5 0110 06 6 6 0111 07 7 7 1000 10 8 8 1001 11 9 9 1010 12 10 A 1011 13 11 B 1100 14 12 C 1101 15 13 D 1110 16 14 E 1111 17 15 F
进制数的对应关系
1.2 进制转换
1.2.1 转十进制
“按权相加”
其它进制 转换 十进制 10101101.10B 27 +25 +23 +20 +2-1 +2-3 173.625D 31Q 3x82 +1x81 +1x80 201D 2A.61H 2x161 +Ax160 +6x16-1 +1x16-2 42.3789D
1.2.2 十进制转其它进制
“除R取余” 将十进制数连续用基数R去除,直到商数到0为止;每次除得的余数依次为二进制数由低到高的各位值。
47D 101111B 47/2 = 23 a0 =1 23/2 = 11 a1 =1 11/2 = 5 a2 =1 5/2 = 2 a3 =1 2/2 = 1 a4 =0 1/2 = 0 a5 =1
1.2.3 其它进制间互转
“按位转换”
1.3 机器数的编码
1.3.1 原码
最高位表示符号位,其余各位表示真值的绝对值;0表示正数,1表示负数。 真值0用原码表示有两种: - 0、+ 0
数值 原码 X1 = + 1100110B [X1 ]原 = 01100110B X1 = - 1100110B [X1 ]原 = 11100110B
1.3.2 反码
正数的反码与原码相同;负数的反码,符号位仍用1表示,其余数值位按位取反。 真值0用反码表示有两种: - 0、+ 0
数值 原码 X1 = + 1100110B [X1 ]反 = 01100110B X1 = - 1100110B [X1 ]反 = 10011001B
1.3.3 补码
补码是为了解决将减法转化为加法的问题。 正数的补码与原码相同;负数的补码先写出该负数相对应的正数的原码表示,然后按位取反,末位加1。
+46D +4 6D +46D表示 0010 1110 按位取反 1101 0001 末位加1 1101 0010 16进制表示 D 2 [- 46 ]补 = D2H
1.4按位运算符
1.4.1 & 按位与
运算规则 0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1 参加运算的两个对象同时为“1”,结果才为“1”,否则为“0”。
1.4.2 | 按位或
运算规则 0 | 0 = 0 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1 参加运算的两个对象,只要有一个为“1”,结果即为“1”。
1.4.3 ^ 按位异或
运算规则 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 参加运算的两个对象,如果两个相应位为“异”(值不同),则结果为“1”,否则为“0”。
1.4.4 ~ 取反
运算规则 ~ 1 = 0 ~ 0 = 1 即将“0”变为“1”,“1”变为“0”。
1.4.5
>
>
>>
> > 右移
>> 运算规则 将一个运算对象的各二进制位全部右移若干位,正数左补“0”,负数左补“1”,右边丢弃。 操作数每右移一位,相当于该数除以“2”。
1.4.6
<
<
<<
< < 左移
<< 运算规则 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 若左移时舍弃的高位不包含“1”,则每左移一位,相当于该数乘以“2”。
1.4.7
>
>
>
>>>
> > > 无符号右移
>>> 运算规则 将一个运算对象的各二进制位全部右移指定位数;右移后左边空出的位用“0”填充,移出右边的位被丢弃。
1.4.8 不同长度的数据进行位运算
如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。 以long型4字节,int型2字节为例,右对齐后,左边不足的依照下面三种情况补足: 如果整型数据位正数,左边补16个0; 如果整型数据位负数,左边补16个1; 如果整型数据为无符号数,左边补16个0;
最后
以上就是清新鸡 为你收集整理的【学习总结】数制码制 的全部内容,希望文章能够帮你解决【学习总结】数制码制 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站 推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复