我是靠谱客的博主 清新鸡,最近开发中收集的这篇文章主要介绍【学习总结】数制码制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数制与码制

pic

内存容量单位换算表

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=Dn1Rn1+Dn2Rn2+...+D0R0+...+DmRm.

二进制八进制十进制十六进制
00000000
00010111
00100222
00110333
01000444
01010555
01100666
01110777
10001088
10011199
10101210A
10111311B
11001412C
11011513D
11101614E
11111715F
进制数的对应关系

1.2 进制转换

pic

1.2.1 转十进制

“按权相加”

其它进制转换十进制
10101101.10B27+25+23+20+2-1+2-3173.625D
31Q3x82+1x81+1x80201D
2A.61H2x161+Ax160+6x16-1+1x16-242.3789D
1.2.2 十进制转其它进制

“除R取余”
将十进制数连续用基数R去除,直到商数到0为止;每次除得的余数依次为二进制数由低到高的各位值。

47D101111B
47/2 = 23a0=1
23/2 = 11a1=1
11/2 = 5a2=1
5/2 = 2a3=1
2/2 = 1a4=0
1/2 = 0a5=1
1.2.3 其它进制间互转

“按位转换”

1.3 机器数的编码

1.3.1 原码

最高位表示符号位,其余各位表示真值的绝对值;0表示正数,1表示负数。
pic
真值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+46D
+46D表示00101110
按位取反11010001
末位加111010010
16进制表示 D 2[- 46 ] =D2H

1.4按位运算符

1.4.1 & 按位与
运算规则0 & 0 = 00 & 1 = 01 & 0 = 01 & 1 = 1
参加运算的两个对象同时为“1”,结果才为“1”,否则为“0”。
1.4.2 | 按位或
运算规则0 | 0 = 00 | 1 = 11 | 0 = 11 | 1 = 1
参加运算的两个对象,只要有一个为“1”,结果即为“1”。
1.4.3 ^ 按位异或
运算规则0 ^ 0 = 00 ^ 1 = 11 ^ 0 = 11 ^ 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;

最后

以上就是清新鸡为你收集整理的【学习总结】数制码制的全部内容,希望文章能够帮你解决【学习总结】数制码制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部