• C 中细节问题的试题


    下面函数的功能是什么?仔细分析!

    #include<stdio.h>
    #include<Windows.h>
    
    //函数的功能 
    //  a<0 输出0
    // 0<=a<=255 输出  a
    // a>255   输出255
    unsigned char function(int a)
    {
        if(a&(~0xff))
        {
            return (-a)>>31;
    
        }else
        {
    
            return a;
        }
    
    }
    int main()
    {  
        int   n=0;
        n=function(-55); 
        printf("%d
    ",n);
        
        system("pause");
        return 0;
    }

    下面的代码的有结果吗?为什么?

    int a=1;
    a+=++(a++);
    //此时a的值是多少?

    解析:编辑错误,数值不能进行自增运算。

    Question:若一个视频中图像分辨率为1920*1080,每像素采样精度为16-bit,每秒25帧图像,则每秒图像占内存1920*1080*25*16)/8_byte(所有数据连续存放)

     16-bit=2byte    1920*1080表示的是像素点 

    图像分辨率之1080P与1080i

    int16_t  x=32767; x++;  printf("%d",x);输出的结果是什么?

    int16_t  x=32767;   // -32768  why????  
    //
    //16位int范围-32768~32767
    x++; printf("%d",x);

     上面的问题可以和下面的问题同解:

    int x=-32769;
    printf("%d",x);
    //为什么输出的结果是32767?
    这是int型数据溢出的问题,16位int范围-32768~32767

    所以-32769超出了int范围,-32768多减一个就变成了32767
    如何理解多减一个:可以往数的进制上面考虑,不够就往回挪了一个(自己的理解)
  • 相关阅读:
    json转换字符串
    windows下Xshell远程访问虚拟机
    win7去箭头指令
    n核CPU为什么计算速度达不到单核n倍
    vim字符串的替换
    转发的别人的vim编码和终端编码的设置
    音频操作
    scanf函数
    文字常量区和栈区区别
    Linux 进程
  • 原文地址:https://www.cnblogs.com/bingdaocaihong/p/6947143.html
Copyright © 2020-2023  润新知