zoukankan      html  css  js  c++  java
  • C语言进制

    一  原码、反码、补码

        计算机存储的数为补码

        数分为有符号(正、负)和无符号(全是正)

        原码

        正数:数转换为2进制,最高位如果是0,则是整数

        负数:数转换为2进制,最高位如果是1,则是负数

        反码

        正数:整数的反码还是它的原码

        负数:除符号位不变,其它各位,逐位取反

        补码

        正数:整数的补码还是它的原码

        负数:反码+1

        2)为什么要使用补码?

        补码主要是用于设计计算机的减法

        3)已知负数的原码求补码

        1)反码:除符号位之外,取反

        2)补码:反码+1

        4)已知补码求原码:

        补码取反加1为原码

    二:位运算:

        一个数的二进制机器码之间的运算

        C语言中的位运算符介绍:

        是一个双目运算,需要有两个操作数

        1)&  按位与 (比较两个数对应的数码,如果都为1,则结果为1)

        口诀:同1为1

        2)|  按位或(比较两个数对应的数码,如果有一个为1,则结果为1)

        口诀:有1为1

        3)^  按位异或(比较两个数对应的数码,如果两个码相同则为0,不同则结果为1)

        口诀:相同为0,不同为1 

        4)~  按位取反(单目运算,数码逐位取反)

        口诀:0变1,1变0

        5)>> 按位右移 

        表示所有的二进制位,整体右移n位

        注意:

        1)数值得变化:每向右移动1位相当于除以2,保留整数部分

        2)右移的时候,高位补符号位,低位直接舍弃

        3)向右移动的时候,不会改变一个数的正负性

        6)<< 按位左移

        表示:所有的二进制位,都向左移动

        左移:

        1)左移可以让一个数变大

        左移1次相当于*2

        2)左移可能会改变一个数的正负性

        3)高位舍弃,低位补0

        技巧:

        1)任何数和1进行按位与(&) 的到这个数的低位

    三:变量的存储:

        查看变量的地址使用 %p

        1)内存是由若干个1个字节的存储单元组成

        每个单元都有一个唯一的地址

        2)内存存储数据是从高地址向地地址分配的

        数据有高位和地位

        int a =10;

        00000000 00000000 00000001 00001010

        高                                低

        一个整数的各个字节存放的顺序:地位存放低地址  高位存放高地址

        3)变量在内存中最小的那个地址,是变量的首地址

    四: 变量的修饰符:

        1)改变变量的存储空间

        short   2个字节   -2^15 ~ 2^15-1;

        int     4

        long    8

        long long 8

        2)改变变量的符号

        signed   有符号数(默认的时有符号的)

        unsigned 无符号数

    五://注意:char型的常量和变量存储方式是有差别的

        char c ='a';     //97     1个字节 -128,127

        int size = sizeof(c);     //1

        //在C语言中char的常量会被当做整形数据存储

        size = sizeof('a');

        printf("%d ",size);

        //1、存储的原理,取出字符对应的ascii码值,转换成2进制,存储到一个字节中

        char ch='A';  //65     01000001

        //以字符型的形式取出来:内存存的是65,到ascii码表中查找ascii码值等于65的字符   找到这个字符取出来

        printf("%c ",ch);

  • 相关阅读:
    轻量级监控平台之java进程监控脚本
    轻量级监控平台之cpu监控
    通过jgit一次性升级fastjson版本
    Jedis Unexpected end of stream & java.net.SocketException: Broken pipe问题解决思路
    程序日志停止滚动问题排查
    前后端hosts配置访问问题解决思路
    mysql慢日志分析组件安装
    redis集群搭建
    redis哨兵环境搭建
    pyspider基础
  • 原文地址:https://www.cnblogs.com/-boy/p/4031816.html
Copyright © 2011-2022 走看看