zoukankan      html  css  js  c++  java
  • 编程中的那些容易迷糊的小知识

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

    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. 机器数:将符号“数字化”的数,是数字在计算机中的二进制表示形式。

    持续更新中!!!

    作者:耑新新,发布于  博客园

    转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

  • 相关阅读:
    使用Charles对iPhone进行Http(s)请求拦截(抓包)
    pip 安装 和 卸载 django
    python2.7.5 安装pip
    (Git 学习)Git SSH Key 创建步骤
    git学习四:eclipse使用git提交项目
    我们为什么要使用List和Set(List,Set详解)
    List、Set、Map的区别
    type=hidden
    测试业务分析
    USACO 3.2 kimbits DP
  • 原文地址:https://www.cnblogs.com/Arthurian/p/7647580.html
Copyright © 2011-2022 走看看