计算机基础知识_进制转化

          进制转化

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

时间: 2024-10-24 07:27:07

计算机基础知识_进制转化的相关文章

计算机基础知识_原码反码补码

一.原码,反码,补码 1.原码 比如一个二进制数字 最高位是0,(0代表正数) 0010 1000 那么原码就是0010 1000 反码: 0010 1000 补码: 0010 1000 都是一样的,这个二进制数字的10进制是40 所以是正数 正数的原反补都是一样的 2.反码 反码就是原码的取反,二进制的 0变为1 1变为0 ,看最高符号位是0 还是1,如果是1,则你要0变为1,1变为0, 3.补码: 负数的的是原码 取反 在加1 变成补码(二进制数) 正数的原码 加上负数的补码就等于是做减法运

计算机基础-1(进制转换)

信息的编码 (ASCII)    分为七位和八位     七位的 共128    八位的 256   考的重点是七位的. 空格 32 '0' ~ '9' 48~57 'A' ~ 'Z' 65~90 'a' ~ 'z' 97~122 数字(10个)+字母(52个)+标点(33个)=95  (可打印) +33(控制码 如空格)  =128   (不可打印) 进制转换  二进制.八进制.十六进制.十进制转换 将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都非常容易,就是“

计算机基础知识_硬件知识

硬件知识 计算机之父(冯·诺依曼)提出了一种结构电子管-晶体管-集成电路-大规模集成电路主要的要点是:1.)计算机存储是按照二进制存储的 作用是 可靠,稳定2.)计算机按照程序顺序执行 有五个要点1.)有标准的输入设备2.)有存储的戒指3.)能够进行算数运算和逻辑运算(cpu)4.)有控制5.)有标准的输出设备 常用的算法用处 1.冒泡排序 一般用于磁带(磁带,大规模存储的介质,没有随机内存的访问)所以冒泡排序是两两交换,可以用于这种设备.2.选择排序用于CD....等等可以有随机内存访问的介质

Java基础笔记(3) 进制与进制转换

---恢复内容开始--- 进制 在一般生活中,我们一直在应用的十进制,就是逢十进一,而今天我们要接触的是,计算机编程常用的进制!首先我们要知道,计算机内部运算采用的是二进制,也就是逢二进制! 1.什么是二进制? 就是只有0 和 1  每当遇到值为2 就向前进一位. 2.为什么计算机内部是二进制? 这就要从硬件说起,计算机是如何储存数据的,要知道我们网络传输,就是你要和别人一起聊天,你们隔着很远,到底是怎样才能让他收到你的聊天内容? 有一根网线还能说过去,毕竟网线链接终端我们也不知道连到哪,保不齐

标识符,进制转化,原反补码等

标识符 Java对包.类.方法.参数.变量等要素命名时使用的字符序列. 规则:***** 1.由字母(含中.英.日.俄等).数字.下划线_和美元符号$组成. 2.不能以数字开头   int 123a=1; 3.区分大小写  int a=1和int A=1是不一样的. 4.长度无限制.(一般编程长度不超过15个字符) 5.不能是Java中的保留字和关键字    int class="1"    int ainta=1 保留字和关键字都有哪些?我们知道以后应该避开它们. 标识符命名习惯:*

第一章 计算机基础知识

第一章 计算机基础知识 第一部分 概述 1.1946年2月15日,第一台计算机 ENIAC 2.物理原件(电子原件) 第一代:电子管.第二代:晶体管.第三代:中小规模集成电路.第四代:超大规模集成电路.第五代:超导材料.第六代:人工智能.#考试考到第四代. 3.计算机的分类 巨型机,大型机,中型机,小型机,微型机 现在的巨型机也是存在的 4.微处理器(CPU.中央处理器)由控制器.寄存器.运算器组成 第二部分 微机系统的组成 CPU>内存>外存 #速度 CPU和内存之间有一个CACHE,叫做高

SEO基础知识_绝密教程

<p align="center"> </p> <p>   </p> <p align="center"> 第一次接触SEO,请阅读本基础指南入门,也可以注册论坛:<a  1-1.html" target="_blank"><span style="color:black;">从一句话入门</span><span s

Java Integer 进制转化的实现(附源码),对模与补码的理解

1.toBinaryString方法的实现 1 public static String toBinaryString(int i) { 2 return toUnsignedString0(i, 1); 3 } 4 private static String toUnsignedString0(int val, int shift) { 5 // assert shift > 0 && shift <=5 : "Illegal shift value";

c语言进制转化

#include <stdio.h> // 进制转化 int main(void) { int i1 = 12; int i2 = 88; int i3 = 0x32C; printf("八进制输出i1 = %o\n", i1); // 14 printf("十六进制输出i2 = %x\n", i2); // 58 printf("十六进制输出i3 = %x\n", i3); // 32c printf("十进制输出i3 =