编程中的那些容易迷糊的小知识
我们在学习中,很多东西我们都以为我们已经会了,但当我们再次见到的时候,也许会遇到一些问题。
1、赋值运算符
我们都知道,赋值运算符左方的操作数必须是一个变量,而右侧的操作数则可以是任意表达式。这个规则我们都耳熟能详,但你是否真正理解其背后的含义呢?
在博主初学编程,学C++的运算符时,曾产生这样的疑问,假设有下面这样一段代码:
int a = 0, b, c; b = a + b = 5;
那么这段程序该怎么执行呢?本着不耻下问的态度,寻求了诸多前辈的帮助,结果有点点惨不忍睹。。。得到的答案五花八门,博主都有点怀疑人生。之后拿编译器测试之后,才意识到这段代码有着明显的语法错误,赋值运算符左侧写为 a+b 本身已经不合法,又谈何执行顺序呢。
2、机器数
机器数(computer number)是将符号“数字化”的数,是数字在计算机中的二进制白哦是形式。机器数有两个特点:一是符号数字化,二是其数的大小受机器字长的限制。
2.1 定点数
定点数一般用来表示整数。我们认为整数没有小数部分,小数点固定在数的最右边。整数可分为无符号整数和有符号整数两类。无符号整数的所有二进制位全用来表示数值的大小;有符号整数用最高位表示数的正负,而其他位表示数值的大小。例如十进制整数-65的计算机内表示可以是11000001。
2.2 浮点数
浮点数用于表示除了整数以外的实数,表示方法是:把一个实数的范围和精度分别用阶码和尾数来表示。在计算机中,为了提高数据表示精度,必须唯一地表示小数点的位置,因此规定浮点数必须写成规范化的形式,即当尾数不为0时,其绝对值大于或者等于0.5且小于1(注:因为是二进制数,要求尾数的第1位必须是1)。格式: 阶码符号位|阶码|尾数符号位|尾数( ps:“|”只是为了表示隔断,实际是没有的)
eg1、例如设机器字长为16位,尾数为8位,阶码为6位,则二进制实数-1101.010的机内表示为0|000100|1|11010100
eg2、例如设机器字长为16位,阶码用6位,尾数用8位的话,二进制实数-1.1101的机内表示表为 0|000001|1|11101000
另注:机器码和机器数是两个不同的概念。
- 机器码:将硬件序列号经过一系列加密、散列形成的一串序列号。
- 机器数:将符号“数字化”的数,是数字在计算机中的二进制表示形式。
持续更新中!!!
作者:耑新新,发布于 博客园
转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/7647580.html
欢迎邮件交流:zhuanxinxin@aliyun.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现