博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程中的那些容易迷糊的小知识
阅读量:4563 次
发布时间:2019-06-08

本文共 1065 字,大约阅读时间需要 3 分钟。

我们在学习中,很多东西我们都以为我们已经会了,但当我们再次见到的时候,也许会遇到一些问题。

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

另注:机器码和机器数是两个不同的概念。

  1. 机器码:将硬件序列号经过一系列加密、散列形成的一串序列号。
  2. 机器数:将符号“数字化”的数,是数字在计算机中的二进制表示形式。

 

持续更新中!!!

 

作者:耑新新,发布于  

转载请注明出处,欢迎邮件交流:

转载于:https://www.cnblogs.com/Amedeo/p/7647580.html

你可能感兴趣的文章
sentinel控制台
查看>>
selenium 难定位元素,时间插件,下拉框定位,string包含,定位列表中的一个,技巧...
查看>>
【转】一些数据格式化-Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法...
查看>>
斗地主算法的设计与实现(四)--对牌进行排序
查看>>
How to get web browser history using cursor
查看>>
软键盘覆盖EditText解决方法
查看>>
Daily Scrumming* 2015.11.1(Day 13)
查看>>
css不定高图文垂直居中的三种方法
查看>>
剑指offer--1.二维数组中的查找
查看>>
第3次作业:团队介绍
查看>>
[html][javascript]父子窗体传值
查看>>
收房细则
查看>>
读《Android深度探索(卷1)HAL与驱动开发》的一些思考10
查看>>
二十三、uevnet机制和U盘自动挂载
查看>>
Kettle 提取mongodb最大编号
查看>>
Vue2.0-token权限处理
查看>>
Caffeine缓存
查看>>
JavaScript 回车键转成Tab键
查看>>
CentOS7配置MySQL5.7主备
查看>>
合并区间(LintCode)
查看>>