一:数制(计数的规则)
*定义:指用一组固定的符号和统一的规则表示数值的方法
*进制:逢几进一(N进制就是指逢N进一)在计数的过程中采用进位的方法称为进位计数制,简称进位制;在进位数制中,表示数的符号在不同的位置上所代表的值是不同的
-数码:数制中表示基本数制大小的不同数字符号
-基数:数制中所使用的数码的个数
-位权:数值中某一位上的数所表示的数值的大小(所处位置的价值)
*R进制数:
基数:R
数码:R个(0~R-1)
位权:R的幂
*C语言规定八进制前要加0(注意是零不是字母O),十六进制前要加0x或0X,十进制前什么都不加(计算机只识别二进制)
*在汇编中,数字后加字母B表示二进制数,加字母O表示八进制数,加字母D表示十进制数,加字母H表示十六进制数
例子:1011B为二进制数1011,也记为(1011)₂
*预备知识
小数除以大数,则商为零,余数是小数本身
例子:1/2 = 0 余数1
*其它进制转化为十进数:
按权展开,对多项式进行算术求和,结果用十进制的位置表示法给出
eg:(1101.1001)B=( ?)D
(1101.1001)B=12³+12²+02¹+12º+12-¹+02-²+0*2-³+...
*十进制转成r进制
转换原则:若两数相等,则它们的整数部分和小数部分分别相等
转换方法:对整数部分和小数部分分别转换,整数部分的转换采用“除基取余”法,小数部分的转换采用“乘积取整”法
方法(整数部分除基取余):除r取余,直至商为0,余数倒序排列
(小数部分乘积取整):用目标数制的基数(R)乘十进制小数,第一次相乘的结果的整数部分为目的数的最高位,将其小数部分再乘以该基数,重复该过程,直到乘积的小数部分为0或满足要求的精度为止,然后顺序排列每次乘积的整数部分
*二进制和八进制的转化
1:二进制到八进制
方法一:(分组对应转化:从右向左,三位一段,分别转化,不够三位的补零)以小数点为界,将二进制的整数部分从低位开始,小数部分从高位开始,每三位分成一组,最后一组不足三位时,分别在整数的最高位前面和小数的最低位后面补0凑齐三位。然后将每组的三位二进制数转化成对应的八进制数字符号
方法二:将待转化数转化为十进制数,然后将得到的十进制数转化为目标进制数
例子:(0101110)₂→(000,101,110)₂→(0 5 6)下标8
2:八进制到二进制
方法:(按位对应转化:将每一个八进制转化为三个二进制位)将八进制数中的每一位数字符号表示成对应的三位二进制数,去掉整数部分首部和小数部分尾部的0
例子:(27)下标8→(010,111)
*二进制与十六进制的转换
1:二进制到十六进制
方法一:(分组对应转化:从右向左,四位一段,分别转化,不够四位的补零)以小数点为界,将二进制的整数部分从低位开始,小数部分从高位开始,每四位分成一组,最后一组不足四位时,分别在整数的最高位前面和小数的最低位后面补0凑齐四位,然后将每组的四位二进制数转化成对应的十六进制数字符号
方法二:将待转化数转化为十进制数,然后将得到的十进制数转化为目标进制数
例子:(0101110)₂→(0010,1110)₂→(2 ,E )下标16
2:十六进制到二进制
方法:(按位对应转化:将每一个十六进制转化为四个二进制位)将十六进制数中的每一位数字符号表示成对应的四位二进制数,去掉整数部分首部和小数部分尾部的0
例子:(2E)下标16→(0010,1110)²*十六进制与八进制相互转化
不存在十六进制与八进制的直接相互转化,都是以二进制为中间进制来进行转化的
*8位二进制所代表的十进制示意图
二进制 十进制
-0000 0000 -- 0
-0000 0001 -- 1
-......... ........ ..................
-0111 1111 -- 127
-1000 0000 -- -128
-1000 0001 -- -127
-1000 0010 -- -126
-......... ......... ................
-1111 1111 -- -1
/*
时间:2022/03/18/10:16
目的:测试100的进制转化
*/
#include<stdio.h>
int main(void)
{
int i = 100;
printf("dec = %d octal = %o hex = %x\n",i,i,i);
printf("dec = %d octal = %#o hex = %#x\n",i,i,i);
return 0;
}
/*
在vs2019中的输出结果
~~~~~~~~~~~~~~~~~~~~~~~~~~
dec = 100 octal = 144 hex = 64
dec = 100 octal = 0144 hex = 0x64 //十进制前什么都不加
~~~~~~~~~~~~~~~~~~~~~~~~~~
总结:。。。
*/