• about 字节


    关于由于赋值导致字节的截断、字节扩展及数据类型的提升:

    一、字节截断:
    int----->char 当一个字节(8位)放不下时,出现截断,直接取(最后一个字节)最后面面8位。 例如:100000000=256将256放在一个字符变量时,他就会截取后面的8位,放在字符变量中的那一个字节中,将最高位“1”,抛弃了。 所以以%d输出时,结果为0.
    例如:
    #include
    int main(void)
    {
    int a = 256;
    char c;
    c = a;
    printf("c:=%c ",c);
    return 0;
    }
    二、字节扩展:
    char<----->int (短字节最高位是什么,之后长字节的3个字节就补什么)
    单精度浮点型:float
    %f:默认以double类型打印的
    %.nf:小数点之后保留n位
    %f:小数点之后保留6位,
    float a=3.2 :意思:开辟一个大小为4字节、名称叫a的内存空间,并将3.2存入该空间
    在赋值时,要输入的数后面加上f,以保证输入的数为4字节。
    (因为一个常量小数占8个字节,默认是double型。)

    例如:float a=3.5f;
    float 开辟内存空间时,开辟4字节大小
    双精度浮点型:double
    double b=8.8 意思:开辟一个大小为8字节、名称叫b的内存空间,并将8.8存入该空间
    double 开辟空间时占8字节。
    三、数据类型提升
    X
    短字节向长字节看齐,
    有符号向无符号看齐,
    整数向浮点型看齐,
    单精度向双精度看齐,
    证明:短字节向长字节看齐 证明:有符号向无符号看齐:运算结果最后是无符号数。
    #include <stdio.h>
    #include <stdlib.h>
    int main ()
    {
    unsigned int a =5;
    int b=-20;
    ((a+b)>0)?printf("*"):printf("#");
    return 0;
    }

  • 相关阅读:
    poj 2425 AChessGame(博弈)
    poj2975 Nim 胜利的方案数
    hdu 5724 SG+状态压缩
    hdu 5274 Dylans loves tree(LCA + 线段树)
    hdu 5266 pog loves szh III(lca + 线段树)
    hdu 4031 attack 线段树区间更新
    51 nod 1188 最大公约数之和 V2
    51nod 1040 最大公约数之和(欧拉函数)
    51nod 1035:最长的循环节
    Nim游戏(组合游戏Combinatorial Games)
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/5194059.html
Copyright © 2020-2023  润新知