进制转化

一.任何一个进制转化为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

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

  1. 进销存设计与分析_进仓单(2)

    进销存设计与分析_进仓单(2)   <script src="http://blog.csdn.net/count.aspx?ID=2090261&Type=Rank" ...

  2. linux命令基础知识 管道流,linux基础知识-I/O重定向,管道(示例代码)

    系统设定 默认输出设备:标准输出,STDOUT, 1 默认输入设备:标准输入, STDIN, 0 标准错误输出:STDERR, 2 标准输入:键盘 标准输出和错误输出:显示器 I/O重定向: Linu ...

  3. 16进制数组转成10进制 qt_第五课_进制2

    前言 感谢网友的提醒,前面一课弄错了,是第四课,这一课才是第五课.这一课主要讲传统进制的转换方法.但是需要说明的是,进制间是不需要转换的,每一种进制本身都是完美的. 一.通过中间进制进行转换 需要说明 ...

  4. 计算机组成原理 cpu图,计算机组成原理和结构图式(第三章 CPU子系统)(示例代码)...

    计算机组成原理和结构图式(第三章 CPU子系统) 1.运算部件 ?图3-39 M:存储部件(存储单元在存储部件中) R:通用寄存器组 ALU:逻辑运算部件 任务:输入/直送,加工,输出 运算器构成 输 ...

  5. 计算机科学导论数据运算,补基础:自学:计算机科学导论 第四章 数据运算(示例代码)...

    4.1 逻辑运算:指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算. 4.1.1 位层次上的逻辑运算 0 代表逻辑 假, 1 代表逻辑 真. 4种操作: 非(NOT): ...

  6. 计算机80坐标转换经纬度,西安80坐标系(高斯投影)转经纬度(示例代码)

    如何将下载的影像变换为西安80坐标? 注意:投影转换成80坐标系需要下载无偏移卫星图像进行转换,有偏移的转换将导致转换后的卫星图像扭曲,坐标错误,无法配准. 第一步:选择无偏移地图源,下载你所需要的卫 ...

  7. 106划为c语言16进制数,计算机基础知识题(含答案)

    <计算机基础知识题(含答案)>由会员分享,可在线阅读,更多相关<计算机基础知识题(含答案)(27页珍藏版)>请在人人文库网上搜索. 1.第第1 1章章 计算机基础知识计算机基础 ...

  8. 一、进制学习-计算机基础

    计算机中的进制介绍 计算机可以识别的语言为 0 1 ,我们称为二进制语言,而我们通常使用的比较多的为10进制数与16进制数. 各进制间的表现形式 上图中是 16进制中对应的 2进制 与 10进制的 值 ...

  9. 计算机基础知识试卷并附答案,计算机基础知识_试卷及答案.doc

    计算机基础知识_试卷及答案 ※解题指导 1.与十进制数22等值的二进制数是 A . A.10110 B.01110 C.11010 D.10111 分析:十进制数转化为r进制数的方法是:整数部分:除r ...

最新文章

  1. 一个.Net Framework下的线程库
  2. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---02
  3. 机器人编程语言python-机器人行业,10大流行编程语言对比
  4. PHP文本处理 中文汉字字符串 转换为数组
  5. 475. Heaters
  6. Python-OpenCV之图片缩放(cv2.resize)
  7. 你所需要的java基础篇深入解析大汇总
  8. 语音留言无法在电话上播放
  9. 【GNN】AAAI2021 | 图神经网络研究进展解读
  10. android homme一般多钱,【ANDROID HOMME】ANDROID HOMME官网介绍_ANDROID HOMME口碑_什么值得买...
  11. 聊一聊 java8 中的 Optional
  12. 在WinForm中使用Web Service来实现软件自动升级
  13. 安全系列之一:如何利用IPSec保证远程桌面的安全性!(上)
  14. C++对象产生和销毁的顺序
  15. 在模拟器中添加模拟尺寸
  16. 现在需要在input框输入年月yyyymm的正则_税务师报名时间、考试报名官网2021年安排_税务师...
  17. ffmpeg批量转换ts为mp4
  18. ERROR 2002 (HY000): Cant connect to local MySQL server through socket的解决方法
  19. 前端开发vue技术栈程序员的vs code插件分享
  20. 怎么将图片进行圆角处理?

热门文章

  1. Python题目——实现人机对战的尼姆游戏:假设有一堆物品,计算机和人类玩家轮流从其中拿走一部分。在每一步中,人或计算机可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品
  2. 如何获取在桌面创建快捷方式的权限
  3. Linux下日志分析--Linux日志
  4. 您也许需要运行“apt --fix-broken install”来修正上面的错误
  5. “古今第一美男子”是怎么掉了脑袋的
  6. 一起读Java编程思想(2)---构造器的初始化与清理
  7. Java基础总结(内部版)
  8. C++57个入门知识点_50 菱形继承与虚继承(C++中语法允许多重继承造成菱形继承;会造成近亲结婚的问题;可以通过虚继承的方式解决;实际项目中不多用多重继承)
  9. 电子计算机eniac诞生于哪年,第一台电子计算机eniac诞生于哪年
  10. Matlab做数据拟合中的(Results,SSE,R-square,Adjusted R-square,RMSE)