计算机基础 进制转化,计算机基础知识_进制转化(示例代码)

news/2025/2/19 8:12:09/

进制转化

一.任何一个进制转化为10进制的方式

156的十进制可以看做1*10^2 + 5*10^1  +   6*10^0

首先我们看一下156 ,平方,次方等等都是根据后面有多少位决定的,如果用计算机计算,则正好是156

33是一个八进制可以看做3*8^1+3*8^0 次方  换算出来就是10进制

如果你本身是x进制,那么你的数字就看做  num * x^位数  比如我有一个16进制的数字,转为10进制

16进制在计算机中表示方法: 1 2 3 4 5 6 7 8 9 a b c d e f

a代表10  b.. c.. 依次增加

C8  如果转化为十进制则是  C * 16 ^1 + 8 * 16 ^0 则把C变为12去做

12 * 16 ^1 + 8 * 16 ^0 =  192 + 8 = 200 十进制的200 (任何数的0次方都是1)

二.十进制 转化为 n进制

既然一个n进制可以任意转化为10进制,则10进制则可以任意转化为n进制

思路:

10进制转n进制就是不断÷这个数的进制数

例如:

10进制的17 转化为16 进制  17 / 16 = 1 ...1 结果是1,余1,然后加起来 就是11

23(10进制) 转化为八进制 23 / 8 = 2 ...7 结果就是27

三.16进制转化为2进制,以及2进制转化为16进制

这个比较简单了,只需要记住,4个二进制为对应一个16进制的一位

比如 1100 对应的16进制就是C

0000  代表0

0001  代表1

0010  代表2

0011  代表3

0100  代表4

0101  代表5

0110  代表6

0111  代表7

1000  代表8

1001  代表9

1010  代表a

1011  代表b

1100  代表c

1101  代表d

1110  代表e

1111  代表f

给你一个16进制数,把它变为二进制,则可以对应上面的表拆分

比如A32

拆分为 A 3 2 对应的二进制

A : 1010

3:   0011

2:   0010

二进制转为16进制

这个需要注意一下,要把16进制的数字从右边向左边区分(4各一组)

1000110010

区分:

0010 0011 0010 前边因为10就剩2个了,所以不足4位,需要补零

对应16进制的表去对拼即可: 结果为 232(16进制的) (转化为10进制则用第一种方式,任何进制转化为10进制)

四.八进制转化为2进制,二进制转化为8进制

八进制和第三种16进制转化为二进制和2进制互转类似,只不过都是3个一组了(16进制和2进制是4个一组)

表:

000     0

001     1

010     2

011     3

100     4

101     5

110     6

111     7

随便一个八进制转为二进制:  33 (一个差分为3个)

3: 011

3: 011

最终结果: 011011 如果满足4为一组,则前边补零,变为0001 1011

五.计算机中的加法(带进位的或运算)

C语言代码实现:

1 #include

2 Int add(int a,int b)

3 {

4 Do

5 {

6 Int wei = a^b;

7 Int jinwei = (a&b)<<1;

8 A = wei;

9 B = jinweil;

10 }while(b!=0)

11 Return a;

12 }

13 Int main()

14 {

15 Printf(“a + b = %d”,add(3,4));

16 }

最终的输出结果为7

一步一步的推算

首先把3和4分别给函数add为参数

然后循环判断

A^b(3^4)二进制位011 100 亦或是相同为0不同为真

011

^

100

111 结果是7

赋值给wei

但是因为是加法,所以还要考虑进位的问题

所以

(3&4 )<<1 算是他的进位然后左移一位

011

& 他的运算符特点是一方为假则全部为假

100

000    最终他的进位是0

最后再把最终的结果赋值给a

进位赋值给b

如果b这个保存进位的结果不是0的话,那么就继续循环,一直到进位不为0的时候才返回结果a

六、减法原理

减法运算的话就是求补运算

A-b可以换算为加法

A+(100h-b)-100h

其实就是求b的补集

任何一个数加上b的反码其常量值都是1

按照自己的理解的话

A+(100-b)-100

a代入数字为3

b代入数字为4

那么a+(100-4)-100

则结果为3+96-100 = -1 这样转化为加法就实现了减法

他的设计就是进位丢失

假设是101 那么如果第一个1丢失了,那么就是丢弃了100

乘法问题

二进制x2的n次方就往左边<

按照自己的理解假设是10*5

那么10的二进制是1010

5的二进制是0101

1010 大于0101

那么就是左移一位<1 变成5了.

如果有错误,欢迎批评指正: 联系方式Q:2510908331


http://www.ppmy.cn/news/816071.html

相关文章

进制转换与编码

进制转换与编码 一、进制转换1、进制认识与运算规则2、二进制与八进制1、二进制转八进制2、八进制转二进制 3、按权相加4、二进制与十进制1、二进制转十进制2、十进制转二进制 5、二进制与十六进制6、八进制与十进制1、八进制转十进制2、十进制转八进制 7、八进制与十六进制1、…

二进制转bcd码c语言程序,二进制转8421BCD码的算法

1. BCD码的求和 BCD码使用4位二进制数来表示十进制中0~9这10个数的数码。例如,十进制的237,其BCD码就是0010_0011_0111,但是其二进制是1110_1101。 我们先来研究两个4位的BCD码相加的情况。设这两个BCD码对应的十进制是a,b,其中a,b∈{0,1,2,...,9}。此时只有3种情况: 0≤a…

关于计算机采用二进制数的原因中 错误的是,笔试题(二进制原因)

1、) 在计算机中采用二进制&#xff0c;是因为 A)可降低硬件成本 B)两个状态的系统具有稳定性 C)二进制的运算法则简单 D) 上述三个原因 2、下列叙述中&#xff0c;正确的一条是 A)存储在任何存储器中的信息&#xff0c;断电后都不会丢失 B)操作系统是只对硬盘进行 管理的程序 …

C语言进制转换专题

目录 十进制转换成r进制 八、十六进制转二进制 二进制转八、十六进制 //将十进制数转化为二进制数并打印出其中1的个数 n n & ( n - 1 ) 的奇妙运用 //获取一个二进制序列中的偶数位和奇数位&#xff0c;分别打印出二进制序列 //两个int&#xff08;32位&#xff0…

Java二进制字节码解读

解析后字节码 运行命令&#xff1a;javap -v 类名或者类全路径Classfile /class文件路径Last modified 2022-5-12; size 556 bytesMD5 checksum 87970f58aeaa06be9b4af0063cde7e87Compiled from "JvmClassByteCode.java"// 类基本信息 public class com.tigerkin.jv…

十六进制转化 二进制 八进制 十进制

问题&#xff1a;实现十六进制转化二进制 八进制 十进制&#xff1b; 实验代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define max 100 void zhuanhua(char*,int); void change_1(int); vo…

二进制浮点数以及二进制浮点数算术运算

二进制浮点数以及二进制浮点数算术运算 二进制浮点数表示半精度浮点数单精度浮点数双精度浮点数特殊情况 浮点数的运算步骤一、对阶二、尾数运算三、结果规格化左规操作右规操作 四、 舍入处理五、 溢出判断六、例子二进制浮点数加法二进制浮点数减法二进制浮点数乘法二进制浮点…

进制与转换

数制:以一组固定的符号(每位)和计数规律保存数的体制. 十进制: 0~9 满十进一 9110 算利息: 100 * 3% 3 103 *3% 精确到多少位 结算只到小数点后两位 四舍五入 321 123 D 一百二十三 权:每一位上的最小单位(1)代表的数值 123 百位的1代表多少:100 十位的1代表 10 各…