计算中的数值表示

本文详细介绍了计算机中数据的存储方式,包括二进制、补码、原码、反码和移码的概念,以及八进制和十六进制与二进制的转换方法。同时,提及了C语言中不同进制数的表示方式。
摘要由CSDN通过智能技术生成

一、引言

数据在计算机中是以二进制形式存储的

1、无论负数还是非负数在计算机中都以补码的方式存储

2、不过非负数在计算机中的补码跟原码一样

3、八进制以原码存储

4、十六进制以原码存储

二、进制

进制也就是进位制,是人们规定的一种进位方法

对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位

十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

三、二进制

1.二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数

它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”

2.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的

3.十进制转化二进制的方法:

用十进制数除以2,分别取余数和商数,商数为0的时候,将余数倒着数就是转化后的结果。

例如,十进制20的二进制为 10100

四、八进制

1.八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。

2.一些编程语言中常常以数字0开始表明该数字是八进制

3.八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中

4.八进制和二进制互转:

二进制转八进制:

八进制数转二进制数:

同理,只需要将一位8进制数划分为三位二进制数即可,如:

十进制转化八进制的方法:

用十进制数除以8,分别取余数和商数,商数为0的时候,将余数倒着数就是转化后的结果

(跟二进制转十进制方法一样,参考上面。)

五、十六进制

1.六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写

2.与10进制的对应关系是:0-9对应0-9,A-F(或a-f)对应10-15

3.十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位),因此常应用在计算机语言中

4.十六进制和二进制互转:

二进制转十六进制(跟二进制转八进制方法一样,不过这里四位二进制数转一位十六进制数)

十六进制转二进制(跟八进制转二进制方法一样):

十进制转化十六进制的方法:

用十进制数除以16,分别取余数和商数,商数为0的时候,将余数倒着数就是转化后的结果

(请参考十进制转二进制)

六、c语言如何响应的进制数

十进制

以正常数字1-9开头,如15

八进制

以数字0开头,如017

十六进制

以0x或0X开头,如0xf

二进制

以0b或0B开头,如0b1111

用下面的代码段的测试来演示:

七、数值的存储方式

计算机底层都是存储数据都是采用二进制,但二进制也有几种,比如:原码、反码、补码。

原码

十进制数按照:除二取余、倒序排列,得到的就是原码。
        10 -> 0000 1010
        -10 -> 1000 1010
        -1 -> 1000 0001
        1 -> 0000 0001

反码

反码的计算规则如下:

正数的反码就是原码本身

负数的反码是按位取反(但符号位不变)

eg:

1 -> 0000 0001 -> 0000 0001

-1 -> 1000 0001 -> 1111 1110

补码

正数的补码就是原码本身
负数的补码就是在反码的基础上+1
1 -> 0000 0001 -> 0000 0001 -> 0000 0001
-1 -> 1000 0001 -> 1111 1110 -> 1111 1111

移码

补码符号位取反就是移码,一般用来计算浮点数作为阶码和比较数的大小使用。

十进制数

补码

移码

+15

0000 1111

1000 1111

-15

1111 0001

0111 0001

+0

0000 0000

1000 0000

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值