我想知道的-进制

一、二进制,八进制,十进制,十六进制

1.二进制,比如 1111111;

  采用 0,1 两个数码,逢二进一。

2. 八进制,以0开头。比如05,0237;

  采用0,1,2,3,4,5,6,7八个数码,逢八进一,并且开头一定要以数字"0"开头。

3. 十进制。比如20,457;

  采用0,1,2,3,4,5,6,7,8,9十个数码,逢十进一。

4. 十六进制,以0x开头。比如0x7a;

  采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,F十六个数码,逢十六进一,并且开头一定要以“0x”开头



二、常用二进制 十进制 八进制 十六进制

0001  1  01     0x1     |    1001   9    011  0x9

0010  2  02     0x2     |    1010   10  012  0xA

0011  3  03     0x3     |    1011   11  013  0xB

0100  4  04     0x4     |    1100   12  014  0xC

0101  5  05     0x5     |    1101   13  015  0xD

0110  6  06     0x6     |    1110   14  016  0xE

0111  7  07     0x7     |    1111   15  017  0xF

1000  8  010   0x8     |



三、进制转换

1.二转十      例子:101010.01

101010 从个位开始往左分别代表 20 21 22 23 24 25 26 27 28 29 210 即  1 2 4 8 16 32 64 128 256 512 1024

32 16 8 4 2 1   1*32+16*0+1*8+4*0+2*1+1*0=32+8+2=42

.01 从十分位开始往后分别代表 2-1 2-2 2-3 2-4 即 1/2  1/4 1/8 1/16

0.5 0.25   0*0.5+1*0.25=0.25

101010.01=42+0.25=42.25

2.二转八      也可以先二转十,十转八 例子:101010.01

   由于23=8,所以 个位往左开始 分成3位一组算,不足3位的左添0,小数点后面从十分位往右也是三位一组算,但不足3位的右添0

101 010 .010         就和"二转十"一样, 每三位各代表  百4 十2 个1

101 421 =4*1+2*0+1*1=5

010 421=4*0+2*1+1*0=2

.010 =.2

101010.01=052.2

3.二转十六   也可以先二转十,十转十六  例子:101010.01

由于24=4,所以 个位往左开始 分成4位一组算,不足4位的左添0,小数点后面从十分位往右也是4位一组算,但不足4位的右添0

0010 1010 .0100         就和"二转十"一样, 每四位各代表 千8  百4 十2 个1

0010 =2

1010=10=A

.0100=.4

101010.01=0x2A.4



3.十转  二 八 十六   例子: 42.25

十转二  除二取余 :整数位/2 算余数 ,乘二取整:小数*2 看个位,无小数就停止

42/2=21 余 0         0.25*2=0.5  看个位 0

21/2=10 余 1         0.5*2=1    看个位 1

10/2=5 余 0

5/2=2 余 1

2/2=1 余 0

1/2 = 0 余 1

(42)10=(101010)2  (0.25)10=(.01)2

(42.25)10=(101010.01)2

  十转八   除八取余:整数位/8 算余数 ,乘八取整: 小数*8 看个位,无小数就停止

42/8=5 余2     0.25*8=2 个位2

5/8=0   余5

(42)10=(52)8    (0.25)10=(.2)8

(42.25)10=(52.2)8

十转十六   除十六取余:整数位/16 算余数 ,乘十六取整: 小数*16 看个位,无小数就停止

42/16=2 余10     0.25*16=4 个位4

2/16=0   余2

(42)10=(2A)16    (0.25)10=(.4)16

(42.25)10=(2A.4)16



八转二   例子:052.2

一位转三位 421

5 =101

2 =010

.2=010

052.2=(101010.01)2

八转十   例子:052.2

从个位往左 80 81 82 83 84  即 1 8 64 512  4096

5*8+1*2=42

从十分位往右   8-1 8-2 8-3 8-4  即  1/8 1/64 1/512  1/4096

2*0.125=0.25

052.2=42+0.25=42.25



十六转二 例子:0x2A.4

一位转四位

2=0010

A=10=1010

.4=0100

0x2A.4=(101010.01)2

十六转十 例子:0x2A.4

从个位往左 160 161 162   即 1 16 256

2*16+A*1=32+10=42

从十分位往右 16-1 16-2 即 1/16    1/256

4*1/16=0.25

0x2A.4=42+0.25=42.5

时间: 2024-08-28 23:33:16

我想知道的-进制的相关文章

JS中的进制转换以及作用

js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 (10).toString(16) // =>"a" //8进制转为16进制 (012).toString(16) // =>"a" //16进制转为10进制 (0x16).toString(10) // =>"22" //16进制转为8进制 (0x16).toString(8)

js中进制转换

利用javascript进行进制转换的方法 今天在做网站时用到了进制的转换,于是在网上搜索,发现可以直接利用javascript的toString()方法和parseInt()方法进行十进制和其他进制之间的转换,这里对他们的用法进行一下整理. toString()方法:将十进制数转换成其他进制数 parseInt()方法:将其他进制数转换成十进制数 <script language="javascript" type="text/javascript">

java中的进制转换

进制转换 首先是十进制转化为其他进制,如二进制,八进制,十六进制: 它们在java中都有专门的函数可供调用: 如:十进制转化为二进制时调用toBinaryString(); 十进制转化为八进制时调用toOctalString(); 十进制转化为十六进制时调用toHexString(); 代码实现: // 进制转化 public class Main_2 { public static void main(String[] args) { Integer a=new Integer(20); //

js 进制转换

js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: 运行下面代码 //10进制转为16进制 (10).toString(16) // =>"a" //8进制转为16进制 (012).toString(16) // =>"a" //16进制转为10进制 (0x16).toString(10) // =>"22" //16进制转为8进制 (0x16).toSt

c/c++面试题(4)字符串翻转/打印任意进制格式/类型转换

1.字符串的翻转,这里一般是字符数组.不包括字符串字面值. char* reversal_str(char* str,size_t size); 翻转之后的字符串是原来的字符串的翻转. #include <stdio.h> #include <string.h> char* reversal(char* str,size_t len) { if(str != NULL) { char* start = str; char* end = str + len - 1; char ch;

C#中2、8、16进制 有符号转换10进制正负数

曾经让我苦想的其他进制转有符号整型问题,结果自己想到方法解决后才发现原来如此简单. 1.Int16(2个byte长度 ) : 方法 :Convert.ToInt16(进制编码,进制) a.16进制转10进制(带正负的) 方法:Convert.ToInt16(16进制编码,16); 负数例如:(16进制)FFFF=(10进制)-1    解决:C#代码:Convert.ToInt16("FFFF",16);  结果:-1 正数例如:(16进制)1E0=(10进制)480   解决:C#代

整数转n进制

#include <stdio.h> int itob(int n,int b) {   int m = 0;   int i = 0;   do   {    m = n % b;    n = n / b;    s[i] = m;    i++;   } while (n);      for (i = i - 1; i >= 0;i--)   {    printf("%d", s[i]);   }   printf("\n"); } in

洛谷 P1017 进制转换

题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 这样的形式. 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式.一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数.如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1.例如,当R=7时,所需用到的数码是0,1,2,3,4,5

java进制转换(无视正负数的差别)

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤其是对于负数这一方面. 下面和大家分享一下,这里只写了十进制到二进制的转换,其实都是同样的道理 1 public class Test1 { 2 3 public static void main(String[] args) { 4 toBin(-4); 5 toBin(4); 6 } 7 /* 8 * 函数名:toBin 9 * 功能描述:用来将正数或者负数转换为二进制数 10 * 创建人:zx 11 * 返回值:void 12 * *