【谭浩强C程序设计精讲 2】整型数据

news2025/2/6 12:13:39

文章目录

    • 3.3 整型数据
      • 3.3.1 整型常量的表示方法
      • 3.3.2 整型变量
        • 1. 整型数据在内存中的存放形式
        • 2. 整型变量的分类
        • 3. 整型变量的定义
        • 4. 整型数据的溢出
      • 3.3.3 整型常量的类型

3.3 整型数据

3.3.1 整型常量的表示方法

整型常量即整常数。C 的整常数可以用以下三种形式表示:

  • (1)十进制整数。

    如 123,-456,0。

  • (2)八进制整数。

    • 数字 0 开头的数是八进制数,每一位用 0-7 八个数码表示,逢八进一。

    如 0123 表示八进制数 123,即
    ( 123 ) 8 = 1 × 8 2 + 2 × 8 1 + 3 × 8 0 = 83 (123)_8=1\times 8^2+2\times8^1+3\times8^0= 83 (123)8=1×82+2×81+3×80=83

    如 -011 表示八进制 -11,即十进制数 -9。

  • (3)十六进制整数。

    • 0x 开头的数是十六进制数,每一位用 0-9、A-F 十六个数码表示,逢十六进一。

    如 0x123,代表十进制 123,即
    ( 123 ) 16 = 1 × 1 6 2 + 2 × 1 6 1 + 3 × 1 6 0 = 291 (123)_{16}=1\times16^2+2\times16^1+3\times16^0=291 (123)16=1×162+2×161+3×160=291

    如 -0x12 等于十进制数 -18。

3.3.2 整型变量

1. 整型数据在内存中的存放形式
  • 数据在内存中是以二进制形式存放的

  • 在实际中,数值是以补码的形式表示的。

    • 一个正数的补码和原码的形式相同。
    • 求负数的补码的方法:将该数的绝对值的二进制形式,按位取反再加 1
    int i,j;    //定义2个整型变量
    i = 10;     //给 i 赋以整数 10
    j = -10;    //给 j 赋以整数 -10
    

在这里插入图片描述

  • 由图可知,整数的16位中,最左面的一位是表示符号的,该位为0,表示数值为正;为1则数值为负

注意在16位系统中,整型才占用2个字节。在32位系统中,整型占4个字节。在不特殊说明的情况下,本书中讨论的就是16位系统。

2. 整型变量的分类
类型说明类型占位数取值范围
有符号基本整型[signed] int16-32768~32767
无符号基本整型unsigned int160~65535
有符号短整型[signed] short [int]16-32768~32767
无符号短整型unsigned short [int]160~65535
有符号长整型long [int]32-2147483648~2147483647
无符号长整型unsigned long [int]320~4294967295

例如:

  int a;              //定义有符号整型变量a
  unsigned int b;     //定义无符号整型变量b

在这里插入图片描述

3. 整型变量的定义
  • 前面已经提到,C规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。

  • 对变量的定义,一般放在一个函数的开头部分的声明部分,作用域在函数体内(在第7章会详细介绍)。

  • 例3.2 整型变量的定义与使用

    #include <stdio.h>
    int main(void)
    {
        int a,b,c,d;        //指定a,b,c,d为整型变量
        unsigned u;         //指定u为无符号整型变量
        a = 12; 
        b = -24; 
        u = 10;
        c = a + u;
        d = b + u;
        printf("a+u=%d,b+u=%d",c,d);
        return 1;
    }
    
    • 运行结果:a+u=22,b+u=-14
4. 整型数据的溢出
  • 一个 int 型变量的最大允许值为 32767,如果再加 1,会出现什么情况?

  • 例3.3 整型数据的溢出

    #include <stdio.h>
    int main(void)
    {
        int a,b;       
        a = 32767; 
        b = a + 1; 
        printf("a=%d,b=%d",a,b);
        return 1;
    }
    
    • 运行结果:a=32767,b=-32768

    注意:一般我们测试的编译系统是32位的,这样的话一个 int 是 4 字节,可以将例3.3程序中的 int 改成 short 就能运行出课本上的结果。

3.3.3 整型常量的类型

整型变量可分为 int、short int、long int 和 unsigned int、unsigned short、unsigned long 等类型。那么,在将一个整型常量赋值给上述几类别的整型变量时如何做到类型匹配

  • (1)一个整数在 -32768~32767 范围内,认为它是 int 型,可以赋值给 int 型和 long int 型变量。
  • (2)如果这个整数超过了上述范围,而在-2147483648~2147483647范围内,则认为它是长整形,可以将它赋值给 long int 型变量。
  • (3)一个整常量后面加一个字母 u,则认为是 unsigned int 型
    • 如 12345u,在内存中按 unsigned int 型存储。

    • 如 -12345u,则先将其转换成补码53191,然后按无符号数存储。

  • (4)在一个整常量后面加一个字母l或L,则认为是 long int 型常量。

本节完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1327930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ISA95 及工业互联网平台

ISA95简称S95&#xff0c;是美国仪表、系统和自动化协会&#xff08;ISA&#xff09;在95年提出来的&#xff0c;也是这个协会启动编制的第95个标准项目。它定义了企业商业和控制系统之间的集成&#xff0c;主要可以分成三个层次&#xff1a; 第0&#xff0c;1&#xff0c;2层…

Ubuntu 常用命令之 fdisk 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 fdisk 是一个用于处理磁盘分区的命令行工具&#xff0c;它在 Linux 系统中广泛使用。fdisk 命令可以创建、删除、更改、复制和显示硬盘分区&#xff0c;以及更改硬盘的分区 ID。 fdisk 命令的常用参数如下 -l&#xff1a;列出所…

jmx_exporter安装

下载 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.jar 创建jmx_exporter.yml文件 文件内容为&#xff1a; rules: - pattern: ".*" 配置tomcatpinter/apache-tomcat-8.5.38/bin/ca…

模型评估方法

目录 数据集切分 交叉验证 交叉验证实例 混淆矩阵 实例 代码实现 阈值 全局阈值处理 自适应阈值处理 阈值对结果的影响 ROC曲线 数据集切分 数据集切分是指将一个数据集分割成训练集和测试集的过程。常用的方法是随机切分&#xff0c;即将数据集中的样本按照一定比…

计算机存储术语: 扇区,磁盘块,页

扇区(sector) 硬盘的读写以扇区为基本单位。磁盘上的每个磁道被等分为若干个弧段&#xff0c;这些弧段称之为扇区。硬盘的物理读写以扇区为基本单位。通常情况下每个扇区的大小是 512 字节。linux 下可以使用 fdisk -l 了解扇区大小&#xff1a; $ sudo /sbin/fdisk -l Disk …

B/S医院手术麻醉临床管理系统源码 手术申请、手术安排

手术麻醉系统概述 手术室是医院各个科室工作交叉汇集的一个重要中心&#xff0c;在时间、空间、设备、药物、材料、人员调配的科学管理、高效运作、安全质控、绩效考核&#xff0c;都十分重要。手术麻醉管理系统&#xff08;Operation Anesthesia Management System&#xff0…

vue 简单实现购物车:商品基础信息最终的 html 文件 + 商品计数器的组件处理,实现了购物车;

购物车实现过程&#xff1a; Ⅰ、商品购物车作业需求&#xff1a;1、商品购物车页面示例&#xff1a;2、具体需求&#xff1a; Ⅱ、html 文件的构建&#xff1a;商品购物车.html Ⅲ、组件文件的构建&#xff1a;商品购物车1.js Ⅳ、小结&#xff1a; Ⅰ、商品购物车作业需求&am…

百度侯震宇详解:大模型将如何重构云计算?

12月20日&#xff0c;在2023百度云智大会智算大会上&#xff0c;百度集团副总裁侯震宇以“大模型重构云计算”为主题发表演讲。他强调&#xff0c;AI原生时代&#xff0c;面向大模型的基础设施体系需要全面重构&#xff0c;为构建繁荣的AI原生生态筑牢底座。 侯震宇表示&…

.Net Core webapi RestFul 统一接口数据返回格式

在RestFul风格盛行的年代&#xff0c;大部分接口都需要一套统一的数据返回格式&#xff0c;那么我们怎么才能保证使用统一的json数据格式返回呢&#xff0c;下面给大家简单介绍一下&#xff1a; 假如我们需要接口统一返回一下数据格式&#xff1a; {"statusCode": …

预警指挥中心建设方案

目录 1.系统概述 2.系统设计 一、设计原则 二、设计依据 3.建设内容 4.设备中心 4.1视频系统 4.2音频系统 4.2.1音响 4.2.2功放 4.2.3无线麦 4.2.4音频处理器 4.3控制系统 4.4视频会商系统 4.4.1全向麦 4.4.2高清摄像头 4.4.3会议终端 4.4.4系统软件 5.软件中…

COSP营造户外骑行新业态:2024深圳户外骑行展在深圳福田召开

随着人们生活水平的提高&#xff0c;绿色健康的生活方式备受关注&#xff0c;户外骑行作为一种绿色、健康的运动方式&#xff0c;越来越受到人们的青睐。此次展会将展示各种类型的户外骑行装备&#xff0c;包括自行车、头盔、手套、鞋类、骑行服等。深圳是中国户外骑行展会的重…

使用Flask逐步搭建Web应用程序

大家好&#xff0c;Flask是一个使用Python编写的轻量级Web应用框架。它被设计成简单、易于学习和使用的&#xff0c;同时具备足够的灵活性和扩展性&#xff0c;以满足各种规模的Web应用开发需求。本文我们将介绍一个使用Flask逐步搭建Web应用程序的简单入门示例。 1.安装Flask…

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…

HarmonyOS4.0系统性深入开发01应用模型的构成要素

应用模型的构成要素 应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼&#xff0c;它提供了应用程序必备的组件和运行机制。有了应用模型&#xff0c;开发者可以基于一套统一的模型进行应用开发&#xff0c;使应用开发更简单、高效。 HarmonyOS应用模型的构成要…

flink使用sql-client-defaults.yml无效

希望在flink sql脚本启动时自动选择catalog&#xff0c;减少麻烦。于是乎配置sql-client-defaults.yaml&#xff1a; catalogs:- name: hive_catalogtype: icebergcatalog-type: hiveproperty-version: 1cache-enabled: trueuri: thrift://localhost:9083client: 5warehouse: …

什么是误差,什么是重构误差,误差与重构误差有什么区别?

重构误差 1.误差的概念2.重构误差的概念 1.误差的概念 在机器学习中&#xff0c;误差通常是指模型的输出与实际标签或者真实值之间的差异&#xff0c;通常用于评估模型的预测能力或者训练的优化过程。 2.重构误差的概念 重构误差是指通过学习到的模型来重新构建&#xff08;或…

案例135:基于微信小程序的房屋租赁管理系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

ArcGIS基础:便捷查看外业照片及识别举证照片方位角

打开工具&#xff1a;【地理标记照片转点】。 打开工具后&#xff0c;输入文件夹&#xff0c;并对相应的参数进行勾选。 右键&#xff0c;图层属性&#xff0c;打开【显示】&#xff0c;对【超链接】设置等参数进行勾选。 找到【符号系统】&#xff0c;点击【高级】&#xff…

关于外贸包裹的那些事

大早晨收到一个客户留言&#xff0c;询问能不能看一下他的货物包裹被送到了哪里&#xff0c;然后客户可以安排他的代理人联系去取包裹&#xff0c;我心里的第一感觉是难道包裹丢失了&#xff1f; 于是赶紧起来查看物流单号&#xff0c;单号显示早在半个多月前已经被他的国内代…

【数据结构】线段树算法总结(区间修改)

知识概览 线段树一般有5个操作&#xff1a; pushup&#xff1a;用子节点更新当前节点信息pushdown&#xff1a;把懒标记往下传build&#xff1a;初始化一棵树modify&#xff1a;修改一个区间query&#xff1a;查询一个区间 不带懒标记&#xff08;支持单点修改&#xff09;的线…