C编程基础 第4节:变量类型

本文介绍了C语言中变量的类型,包括整数型、字符型、浮点型和布尔型。整数型分为有符号数表示法、取值范围和分类;字符型涉及到字符编码、ASCII和单字节整型;浮点型涵盖科学记数法、实数数据类型和IEEE 754浮点数标准;最后提到了布尔型。文章适合C语言初学者,帮助理解不同类型的变量及其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:欢迎来到 Fountain芳腾 的博客,本文希望制作适合新手入门又可供有基础者提升的教程,若文中有错漏之处欢迎大家指正、补充。

目录:C编程基础
上一节:数据单位
下一节:常量

变量类型

  我们认识了变量,知道变量是用来存放数据的,会占用空间。由于数据本身有多种类型,不同类型的数据代表不同的意义,有不同的操作,所以一个变量需要知道自己存储的是什么类型的数据,才知道如何去处理这些数据。C 语言的基本变量类型有整数型、浮点型、字符型、布尔型。
  

整数型

有符号数表示法

  在数学中使用符号"+" 和 "-"来表示数字的正负,而计算机只能处理由 0 和 1 组成的二进制数据,因此需要一种能表示数字正负的编码方法。当前有四种方法用来表示有符号数:原码、反码、补码、移码。

  • 原码:二进制数在存储单元最高位加上符号值后得到的编码即为原码,符号位为 0 代表正数、符号位为 1 代表负数。二进制数等于 0 时,符号位可为 0 也可为 1,代表 ±0。例如在 8 位存储单元中,10(二进制:1010)的原码为 0000,1010,-10 的原码为 1000,1010。原码
  • 反码:反码通常是由原码求补码或由补码求原码的过渡码,正数(包括 +0)的反码等于其原码,负数(包括 -0)的反码为在其原码的基础上符号位不变其余位进行取反。例如在 8 位存储单元中,-10 的原码为 1000,1010,反码为 1111,0101。
    反码
  • 补码:计算机最终使用补码的形式存储整数,正数和 0 的补码等于其原码,负数的补码为其反码的基础上加 1。例如在 8 位存储单元中,-10 的反码为 1111,0101,补码为 1111,0110。
    补码
  • 移码:不需要符号位,而是将原值加上一个偏移量使得编码值大于等于 0 的编码方式。移码没有标准,对于 n 位存储单元,通常将中位数 K = 2n−1 映射为 0,该中位数即偏移量,一个二进制数加上偏移量便可得到移码,大于偏移量即为正数,小于偏移量即为负数。
    移码


练习:由补码计算取值
  计算机使用补码存储整数,根据补码的定义可知,由补码计算取值,首先看最高位,如果是 0 则不需要转换就能得到一个二进制正数,如果是 1 则需要减 1 后进行按位取反就得到一个二进制负数的绝对值。
  请计算以下补码的取值:0000,0000、1000,0000、1111,1111、0111,1111。

扩展:补码原理
  (前往链接)

整数取值范围

  存储单元的大小决定了其可取值的范围。对于一个 n 字节的整型单元,共有 2n 种取值,符号位占 1 位,绝对值共有 2n-1 种取值。正数从 0 开始,最大值为 2n-1-1。负数从 -1 开始,最小值为 -2n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fountain芳腾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值