`
tanleihaoren
  • 浏览: 68392 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

进制及其相关

F# 
阅读更多

一。

   2进制,用两个阿拉伯数字:0、1;

   8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;

   10进制,用十个阿拉伯数字:0到9;

   16进制,用0~9和A,B,C,D,E,F

 

举例:(使用10进制表示下列进制的数)

   16进制的32 : 2×16^0+3×16^1=50

   8进制的1507:7 × 8^0 + 0 × 8^1 + 5 * 8^2 + 1 × 8^3 = 839

   2进制数的0110 0100: 0 ×2^0 + 0  × 2^1 + 1 × 2^2 + 1  ×2^3 + 0  × 2^4 + 1  × 2^5 + 1  × 2^6 + 0 × 2^7 = 100

 

二。为什么需要八进制和十六进制?

   我们习惯使用10进制来思维,但是计算机确是使用2进制来表示,偶尔使用二进制可以有利于我们更好的解决问题,但是二进制数目是如此的长而难于思考和操作,比如一个int 类型占用4个字节,32位。一个10进制的100,用int类型的二进制数表达将是:

  0000 0000 0000 0000 0110 0100

   于是我们采用了一个折中的办法,使用8进制或者16进制,它们除了便于和2进制数进行转换,大大缩短表示长度之外,还很好的保留了2进制数的运算特点,便于做& | > 等2进制的运算。

 

三 一些规定

  事实上,对某些数来说,我们既可以理解为10进制,也可以理解为8进制或者16进制,所以对8进制,我们需要以0开头,对16进制数,我们已0x开头。举例:

 int a = 100 ; (10进制)

 int a = 0000 0000 0000 0000 0110 0100 ; (2进制)

 int a = 0144; (8进制 144 =4×8^0+4×8^1+1×8^2)

 int a =0x64 ; (16进制)

 

四 负数

   10进制数有正负之分,比如12表示正12,而-12表示负12;但8进制和16进制只能表达无符号的正整数,那么我们的计算机是怎么表示负数的呢?这就是原码、反码、补码的概念了。举例来说:

    假设有一个int 类型的数,值为5,那么,计算机中表示为:  

                         00000000 00000000 00000000 00000101

    5转换成二进制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

  那么,-5在计算机中如何表示?在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。

  原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

           比如 00000000 00000000 00000000 00000101 是5的原码。

  反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

  取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

       比如:将00000000 00000000 00000000 00000101  每一位取反

                    得11111111 11111111 11111111 11111010

  称:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。

  反码是相互的,所以也可称:

  11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互为反码。

  补码:反码加1称为补码。

  也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

  比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

  那么,补码为:

  11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

  所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

分享到:
评论

相关推荐

    C#16进制转换10进制

    本文主要讲解如何在C#中实现16进制转换为10进制,以及相关的位运算知识。 首先,让我们来看看C#如何进行16进制到10进制的转换。C#提供了`Convert.ToInt32`方法,它接受一个字符串形式的数值和一个表示原数值基数的...

    SQL 16进制转10进制

    - **SQL字符串函数**:熟悉`SUBSTRING`、`REPLACE`等函数的使用方法及其参数。 - **SQL数学函数**:了解`POWER`函数的用法及其它相关数学运算符。 - **SQL数据类型**:掌握`decimal`类型的使用及特点。 通过以上...

    二进制文件查看器

    下面将详细介绍这个软件及其相关组件。 首先,"二进制文件查看器"的核心功能在于其能够以二进制和十六进制两种形式显示文件内容。二进制模式展示了文件最基本的0和1组成,适合于理解计算机如何存储和处理原始数据。...

    逆向二进制防碰撞算法及其FPGA硬件实现.pdf

    文档的关键词列出了防碰撞、射频识别、逆向二叉树和现场可编程门阵列,这些都是逆向二进制防碰撞算法和FPGA硬件实现相关的核心概念。 在无线射频识别领域,防碰撞算法的提出和优化是不断进步的技术难题。从国内外的...

    16进制HEX文件转二进制格式工具

    标题中的“16进制HEX文件转二进制格式工具”指的是一个程序或软件,它的主要功能是将十六进制(HEX)格式的文件转换为二进制(BIN)格式。在计算机科学和编程领域,这两种格式都有其特定的应用场景。 十六进制(HEX...

    浮点数与十进制数转换工具

    本文将详细探讨浮点数与十进制数之间的转换原理及其在实际应用中的重要性。 首先,浮点数是一种表示实数的方式,特别适合于科学计算,因为它可以表示广泛的数值范围,并且精度相对较高。在计算机内部,浮点数通常...

    jinzhizhuanhuan.rar_十六进制_进制转换_进制转换代码

    下面将详细讨论这些进制及其转换方法: 1. **二进制(Binary)**:二进制是计算机语言的基础,只有两个数字0和1。所有计算机内部的数据都是以二进制形式存储和处理的。例如,十进制数5在二进制中为101。 2. **八...

    二进制数制及其相互转换PPT学习教案.pptx

    位权则是指数制中某一位上的1所代表的数值大小,与该位的位置相关。 在计算机中使用二进制数有多个原因。首先,二进制的可行性在于它只需要两种状态(0和1)就能被电子器件轻易实现,这比其他进制更易于硬件设计。...

    十六进制转十进制.zip

    在这个"十六进制转十进制.zip"压缩包中,我们可以看到它包含了一组与程序设计和算法相关的练习题目及其解答。这些题目可能是为准备蓝桥杯竞赛的学生准备的,蓝桥杯是一项针对程序设计和算法能力的比赛。 首先,让...

    51单片机实现2、8、10、16进制转换

    根据提供的文件信息,本文将详细解释51单片机如何实现二进制(2)、...此外,文章还解释了进制转换的基本原理及其在代码中的具体实现方法。掌握这些知识对于理解51单片机的工作原理以及进行相关开发工作具有重要意义。

    03 IP地址 十进制和二进制关系

    "03 IP地址 十进制和二进制关系"这个主题深入探讨了IP地址的构成及其与十进制和二进制之间的转换关系。下面将详细阐述相关知识点。 首先,IP地址全称为Internet Protocol Address,是Internet协议使用的地址,由32...

    des加密算法-显示16进制

    以下是关于DES加密算法及其在16进制显示中的相关知识。 首先,DES算法基于Feistel网络结构,它将原始明文分为左半部分(L0)和右半部分(R0),然后通过一系列的迭代操作,包括初始置换、轮函数和逆初始置换,最终...

    16进制颜色代码

    本文将基于给定文件的信息,详细介绍16进制颜色代码的相关知识点,包括其定义、如何使用、常见颜色代码示例及其应用领域等内容。 ### 一、16进制颜色代码的定义 16进制颜色代码是一种用于表示RGB(红绿蓝)三原色...

    浮点数转换工具 十六进制浮点数 与 十进制小数 相互转化查询

    以下是对这个工具及其相关知识点的详细说明: 1. **浮点数表示法**:浮点数在计算机中通常遵循IEEE 754标准,这是一个国际标准,定义了浮点数如何在二进制系统中存储和运算。浮点数包括一个符号位、指数部分和尾数...

    易语言简单的二进制加密

    本话题将深入探讨易语言实现的简单二进制加密及其背后的原理,以及与进制转换的关系。 二进制加密是指将原始数据(通常为文本或文件)转换成二进制形式,然后通过特定的加密算法进行处理,使数据变得难以理解。这种...

    取色器 16进制 网页 编写

    本篇将深入探讨16进制颜色代码的原理、用途,以及如何使用取色器工具来获取这些代码,同时也会提及与C#编程语言相关的应用。 16进制颜色代码是一种用六位字符表示的颜色表示法,前两位代表红色通道,接下来两位代表...

    MySQL二进制日志查看工具

    本文将深入探讨MySQL二进制日志的原理、作用及如何利用相关工具进行查看。 首先,MySQL二进制日志(Binary Log)记录了所有改变数据库状态的SQL语句,如INSERT、UPDATE、DELETE以及创建或修改表结构的语句。这些...

    双二进制编码的详细解析

    首先介绍了双二进制编码的基本概念及其工作原理,随后详细阐述了AM/PSK调制技术如何结合双二进制编码实现高效的数据传输。通过对比传统技术,展示了该技术在提高频带利用率和减少误码率方面的优势。 #### 1. 双二...

    网管工具\教程 二进制 八进制 十六进制转换方式

    ### 网管工具教程:二进制、八进制、十六进制转换方式 ...通过深入理解二进制、八进制和十六进制之间的相互转换,程序员能够更加有效地编写和优化代码,同时也能更好地理解和解决与计算机硬件相关的各种问题。

Global site tag (gtag.js) - Google Analytics