C语言入门(4)进制介绍转换以及进制与储存

本文介绍了编程中常见的二进制、八进制、十进制和十六进制之间的转换方法,包括使用短除法进行换算。同时讲解了计算机中数据的储存单位,如位、字节、KB、MB、GB、TB及其与二进制的关系。此外,还探讨了计算机中的原码、反码和补码概念,这些是理解有符号数据类型在计算机中表示的关键。
摘要由CSDN通过智能技术生成

目录

一,进制介绍

二,进制转换

三,进制与储存

四,原码、反码、补码


 

 

一,进制介绍

 

进制转换是学编程多多少都要掌握基础的,虽然现代有科学计算机的帮助,便于人们不用去手算,但是还是要知道换算过程。我们需要学到的有二进制、八进制、十进制、十六进制、以及它们之间的换算过程。接下来一一详细分析:

1,二进制:二进制的取值范围是0和1在计算机里所有数据都是以二进制数字在进行储存的。

在写二进制数字时要在前面加前缀0(零)b,例:

int Inum=0b100101;

2,八进制:八进制的取值范围是0~7,在写八进制数字时要加前缀0(零),例:

int Inum=0521;

3,十进制:十进制的取值范围是0~9系统默认的整型(int)输入格式就是十进制,所以不需要加前缀,例:

int Inum=5201314;

4,十六进制:十六进制的取值范围在数字0~9和A(a)~F(f)之间,在写十六进制数字时,要在开头加上前缀0(零)x,例:

int Inum=0x256oxff

二,进制转换

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_20,color_FFFFFF,t_70,g_se,x_16 通常在程序中进制间的转换可以直接用计算机(程序员)直接进行计算。这里我们简单讲一下整除的情况下进制之间怎么进行换算:

1,十进制转二进制、八进制、十六进制

做法:可以用短除法,用十进制数除以2,反方向取余数,直到商为零为止

实操:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_14,color_FFFFFF,t_70,g_se,x_16

 得到:9(十进制)=1001(二进制)

十进制转八进制和转十六进制方法相同,用十进制数去除以八进制或是十六进制数,直到除尽为止,在从下至上读取余数就是转换后的结果

2,十六进制转十进制

想要将(AFF5321)这样的十六进制的数转换为十进制的数要怎么操作呢?

(A=10,F=14)

转换成十进制:10×16^6+14×16^5+14×16^4+5×16^3+3×16^2+2×16^1+1×16^0   =184,505,121

换算的规律已经用不同色号区分出来

3,八进制转十进制

想要将(756452)这样的八进制的数转换为十进制的数要怎么操作呢?

转换成十进制:7×8^5+5×8^4+6×8^3+4×8^2+5×8^1+2×8^0=253,226

换算的规律已经用不同色号区分出来

4二进制转十进制

想要将(011100010100101)这样的二进制的数转换为十进制的数要怎么操作呢?

转换成十进制:0×2^14+1×2^13+1×2^12+1×2^11+0×2^10+0×2^9+0×2^8+1×2^7+0×2^6+1×2^5+0×2^4+0×2^3+1×2^2+0×2^1+1×2^0=14,501

换算的规律已经用不同色号区分出来

三,进制与储存

在前面,我们提到过,在计算机里,所有的程序都是由二进制数字表示的,我们在编写好C语言程序后,运行时电脑会把C语言程序解析成二进制数字,通过读取二进制数字从而执行任务。解析出来的二进制数字在电脑里是会占取内存的,具体占取大小、等级大小及转换如下:

数据储存与二进制:1位(b)=1个二进制位,1字节(bit)=8个二进制位

储存单位与二进制:1KB=1024B=2^10B

                                 1MB=1024KB=2^20B

                                 1GB=1024MB=2^30B

                                  1TB=1024GB=2^40B

数据类型在32位系统中的占位:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_19,color_FFFFFF,t_70,g_se,x_16

四,原码、反码、补码

 在计算机中只有加法没有减法,这样对有符号数据类型很不友好,所以慢慢的衍生出了反码和补码来补充早期计算机所存在的解析缺陷接下来,我们就了解一下在计算机里,二进制数字都会呈现出哪些形态。

(1)机器码:一串二进制的数字如:1001 1001 0010 0101

(2)原码:在二进制数字的基础上衍生出符号位

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_20,color_FFFFFF,t_70,g_se,x_16

 

(3)反码:

正数反码:三码合一(不做改变)

负数反码:原码(最高位)符号位不变,其他位取反

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_20,color_FFFFFF,t_70,g_se,x_16

(4)补码: 

正数补码:三码合一(不做改变)

负数补码:反码加1

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5a2m5Lmg5bCx5piv5ZG9,size_20,color_FFFFFF,t_70,g_se,x_16

 以上就是这一章的内容,如果内容有错误,请指出!虚心接受指点!

下一章预告:C语言入门之安装Visual Studio 2019

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王司徒搞比利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值