c/c++:原码,反码,补码和常见的数据类型取值范围,溢出

news2024/11/16 21:25:22

c/c++:原码,反码,补码和常见的数据类型取值范围,溢出

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件
【4】c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键
【5】c/c++:数据类型,常量变量,标识符,有符号整型,无符号unsigned,字符类型,字符串类型,实数类型,浮点型,科学计数法
【6】c/c++:2进制、8进制、10进制、16进制和进制之间的转换,c语言输出匹配格式%


文章目录

  • c/c++:原码,反码,补码和常见的数据类型取值范围,溢出
    • @[TOC](文章目录)
  • c++计算机只存放二进制数:原码,反码,补码
  • 复习常量,变量,标识符,sizeof关键字,
  • 总结

c++计算机只存放二进制数:原码,反码,补码

原码
在这里插入图片描述
1B字节=8bit
4B那就是32bit位
0和1是bit
那就是2个数字
32bit可以表示2^32个数字

10=1010
在这里插入图片描述
4个字节,存储空间
只在最低位放1010
其他都是000000……

1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

char类型所占空间是1字节

void f11(void)
{
	printf("字符char的空间大小就是%d字节\n", sizeof(char));
}

在这里插入图片描述
为啥呢,因为char就是ASCII码
120以内的数字
在256范围内
实际上就是8个二进制码足够了,1字节来表示即可
懂?
如果考虑是原码,那128范围内
首位是符号

1字节也是够的。

反码,
正数的原码,反码,补码一样
负数的反码,符号位不动,其余位取反

在这里插入图片描述
补码:
负数的补码,就是反码+1
在这里插入图片描述
在这里插入图片描述
补码利于计算机计算加法,减法
这些我们曾经多次讲过了
现在熟悉一下
在这里插入图片描述
在这里插入图片描述
反正计算机里面有符号,剩下的才是2的n-1次方,这么大的范围,就是它能表示的范围

所以
int 4字节,它32位,那就是2的31次方,因为有一个符号位,
1----1 于是有2的31次方,好像是65536,不是,更大哦要
在这里插入图片描述
2的31次方就牛逼了
在这里插入图片描述
老大了
在这里插入图片描述
如果你定义了一个数,放进去的数太大的话
那空间里面存的数就有范围限制了
你就会溢出

gg

void f11(void)
{
	//printf("字符char的空间大小就是%d字节\n", sizeof(char));
	char ch = 127 + 1;//1个字节表示最大就是127哦
	printf("字符m=%d\n", ch);

}

原计划你要表示128
但是gg
你多了一个1,则符号位溢出了
在这里插入图片描述
当范围超了,符号位就逆转了,gg

在这里插入图片描述
主要就是char
它范围最大127
不能超过
否则gg

复习常量,变量,标识符,sizeof关键字,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结

提示:重要经验:

1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

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

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

相关文章

前脚我的 GPT4 被封,后脚收到了文心一言的邀请账号

大家好,我是二哥呀。 一早醒来,我的 ChatGPT Plus 账号就惨遭封禁,很不幸,我刚冲的 Plus 会员,用了不到一周的时间(😭)。 我没用亚洲的IP,所以网上传的那些不使用亚洲IP…

vuex中的 mapState, mapMutations

vuex中的 mapState, mapMutations Start 今天使用vuex的过程中,遇到 mapState, mapMutations 这么两个函数,今天学习一下这两个函数。 本文介绍的vuex基于 vuex3.0 1. 官方文档说明 1.1 mapState 官方解释 点击这里&#xff1…

深入理解IP地址

我们在浏览器中直接输入IP地址就可以访问某一个神秘的网站,那么这个IP地址是如何划分的呢? IP,英文全写为Internet Protocol,指TCP/IP网络体系中的网际互联协议,工作在OSI模型的网络层(简单了解即可)。 更多内容欢迎访…

数据分析之Matplotilb数据可视化

文章目录1.Matplotilb 基础plt.show()函数plt.plot()函数基本用法例子坐标轴显示的范围传入Numpy数组传入多组数据线条属性使用plt.plot()的返回值来设置线条属性plt.setp()修改线条性质子图plt. subplot (numrows, numcols,fignum)形式3.电影数据绘图(1)绘制每个国家或地区的电…

Python的输入与输出

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

力扣-刷题记录

189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 力扣https://leetcode.cn/problems/rotate-array/description/ void rotate(int* nums, int numsSize, int k){if(k > numsSize){k % numsSize;}if(k0){f…

GlusterFS(GFS)分布式文件系统

目录 一.文件系统简介 1.文件系统的组成 2.文件系统的作用 3.文件系统的挂载使用 二.GlusterFS概述 1.GlusterFS是什么? 2.GlusterFS的特点 3.GlusterFS术语介绍 3.1 Brick(存储块) 3.2 Volume(逻辑卷) 3.3…

Qt Quick - 菜单综述

Qt Quick - 菜单综述使用总结一、概述二、菜单控件三、MenuBar 控件一、概述 菜单这一类,给我们提供了很多的便捷封住。 控件名功能Menu弹出式菜单,可以用作上下文菜单或弹出式菜单,也就是可以单独菜单上用,或者在鼠标右键&…

新能源汽车的充电、电池包的组成、充电的设备

一、新能源汽车的电池包 1、电动汽车电池包的组成 电动汽车的电池包主要由电池单体、模组构成。 电池单体指的是单个独立的锂电池,将多个电池单体组合在一起就成了模组,再把多个模组组合起来最终构成电池包。 不过这里有个特例,那就是比亚…

数据挖掘(2.4)--数据归约和变换

目录 1.数据归约 1.1数据立方体聚合 1.2特征选择 1.3数据压缩 1.4其他数据归约方法 回归分析 直方图 聚类 简单随机采样(SAS) 2.数据离散化 2.1基于信息增益的离散化 2.2基于卡方检验的离散化 2.3基于自然分区的离散化 3.概念层次生成 1.数…

3款免费好用的电脑录屏工具

案例:电脑录屏工具哪款免费又好用? “我想要挑选一款适合自己的好用的电脑录屏软件,但是我尝试了很多款录屏软件结果都不尽人意。免费版的软件功能少,录制效果差,想要高级功能需要付费解锁。想问问大家有没有免费好用…

如何搭建chatGPT4.0模型-国内如何用chatGPT4.0

国内如何用chatGPT4.0 在国内,目前可以通过以下途径使用 OpenAI 的 ChatGPT 4.0: 自己搭建模型:如果您具备一定的技术能力,可以通过下载预训练模型和相关的开发工具包,自行搭建 ChatGPT 4.0 模型。OpenAI提供了相关的…

day81【leetcode】打家劫舍专题

文章目录前言一、打家劫舍(力扣198)【相邻两间房不能偷】二、打家劫舍 II(力扣213)【围成一圈 相邻两间房不能偷】三、打家劫舍 III(力扣337)【树形DP】每日一题day81:链表中的下一个更大节点&a…

Java:jdk的安装以及hello world

由于本人头发较多,常常被认为是不用功的程序员;故,我来学学Java,希望我变秃了也变强了! 首先是java的安装,根据我司java的建议,安装了jdk8与jdk17!因为在众多的版本中,只…

3.7——静态成员

静态数据成员 静态成员,指的是在c类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。即声明为static的类成员或者成员函数便能在类的范围内同享。 说明: 1)静态数…

WordGPT正式版4.0安装教程

下载 https://www.xsoftnet.com/share/a0004MZyPvB5k.html产品介绍: WordGPT正式版来了,V4.0震撼发布,兼容Office与WPS,集提纲生成、内容创作、文本补全、文章润色、归纳总结、自定义提示词、快捷排版为一体的多场景智能文案创作…

IT知识百科:什么是超融合数据中心网络?

超融合数据中心网络(Hyper-Converged Data Center Network)是一种基于软件定义网络(SDN)和虚拟化技术的新型数据中心网络架构。该架构将计算、存储和网络三大要素融合在一起,实现了网络、计算、存储资源的统一管理&…

HTML5 拖放

文章目录HTML5 拖放拖放浏览器支持HTML5 拖放实例设置元素为可拖放拖动什么 - ondragstart 和 setData()放到何处 - ondragover进行放置 - ondropHTML5 拖放 拖放(Drag 和 drop)是 HTML5 标准的组成部分。 拖放 拖放是一种常见的特性,即抓取…

没有两把刷子还敢来面试测试开发工程师?

目录 前言 1.对测试开发的理解 2.为什么做测试而不是去做开发 3.如何处理矛盾 4.职业发展 5.你认为测试人员需要具备哪些素质。(你有哪些优点围绕这些来说) 6.你为什么能够胜任这个岗位 7.测试方法 黑盒测试 白盒测试 8.测试的阶段 9.测试的类…

【ROS2指南-7】理解ROS2的Action

目标: 理解并学习ROS 2 中的Action通信方式。 教程级别:初学者 时间: 15分钟 内容 背景 先决条件 任务 1 设置 2 使用动作 3 ros2节点信息 4 ros2 动作列表 5 ros2 动作信息 6 ros2界面展示 7 ros2 动作 send_goal 概括 下一步 …