zoukankan      html  css  js  c++  java
  • C《二》

    开始阅读谭浩强的C语言程序设计。

    编译一个程序,除了语法以外,还需要管理内存,就是数据结构,学习如何高效的利用内存;数据关系的处理。例如学生管理系统的开发,但是数据关系是有最优解的,也就是可以学会的,因此学习主线就是沿着C语言的设计主线来推理C。

    接着对上次1+1的程序的探索,int i,j,k都是CPU写入内存,CPU由两部分组成,一个是自己的内存,一个是自己的逻辑处理问题的结构。k = i + j是把两个数据的和读入然后写入内存存储起来,并将结果放在内存里边。

    k等价于申请的两个内存的标号或者数据,也就是变量。首先讲数据如何在内存中存储。

    计算机是二进制的世界0和1,一个字节有8位用来存储数据。

    对于十进制中的0123456789的存储方式分别为:

    0000-0000、0000-0001、0000-0010、0000-0011、0000-0100、

    0000-0101 //5、0000-0110 //6、0000-0111 //7、0000-1000 //8、以此类推。

    注意7+8=15 因此15的二进制就是1111。也就是四个字节能表示的数就是0-15,之后的就是用

    0123456789ABCDEF表示。

    0001 == 2^0、0010 == 2^1、0100 == 2^2、1000 == 2^3

    靠,被他搞晕了,原本是知道如何对十进制转换成二进制的。

    继续,char和int不仅是申请类型,而且是申明类型,开始编程:

    code

    当给i强行转换类型的时候,把i当一个字节来转换,如果字节数超过255的时候,就会出现一些有趣的现象,例如输入i为300的时候结果输出的是44,为什么?因为十进制转16进制为012C,而因为只取一个字节,为2C,在十进制中就代表44,因此输出是44。

    那么为什么先取2C而不是01呢,因为在内存里面的存储方式是左边小右边大,我们人类正常的读写顺序是从左往右读取,也就从高读到低,而计算机要从低开始存储数据,则是从又到左读入数据。因此是2C开始存储。

    好有意思的思维。。。

    The more efforts,the more happiness
  • 相关阅读:
    java中的位运算符
    Servlet中的初始化参数、上下文参数、以及@Resource资源注入
    Servlet中文件上传的几种方式
    marquee标签的使用
    SpringBoot热部署的两种方式
    eclipse中安装lombok插件
    关于Servlet中的转发和重定项
    Cormen — The Best Friend Of a Man CodeForces 732B
    牛客小白月赛9之签到题
    Codeforces アンバランス / Unbalanced
  • 原文地址:https://www.cnblogs.com/wing1995/p/4496032.html
Copyright © 2011-2022 走看看