C语言的基本知识(一)

1.有符号数和无符号数所能表示的范围大小

以8位为例:

有符号:-128~127

无符号:0~255

无符号则8位全是数值位:0000 0000~1111 1111->0~255

有符号位的最高位是符号位:(0为正数,1为负数)

        0000 0000~0111 1111->0~127

        1000 0000~1111 1111->-128~-1

        故有符号位的8位范围是-128~127

2.整数-4 ==>int = -4;(32位)在计算机中的存储步骤:

(注:0-0表示8位都为0,1-1同理)

step1:取-4的绝对值,并求其绝对值的原码。

        |-4|=4  ——》0-0 0-0 0-0 0000 0100

step2:取反

        0-0 0-0 0-0 0000 0100 ——》1-1 1-1 1-1 1111 1011

step3:加1

        1-1 1-1 1-1 1111 1011 ——》1-1 1-1 1-1 1111 1100(-4在计算机中的存储形式)

3.%d与%u

%d:十进制有符号的输出,最高位为1(负数),需要进行逆运算。( 对二进制码依次进行减一,取反,加负号的操作。)   

%u:十进制无符号输出。

        eq:

        int a=-5;

        printf("%d\n",a);//-5

        printf("%u\n",a);//2^32-5

4.移位操作

原数左移n位 <==> 原数乘以2^n

原数右移n位 <==> 原数除以2^n

无符号数:

        左移:移出去的丢掉,低位补0;

        右移:移出去的丢掉,高位补0;

有符号数:

        左移:移出去的丢掉,低位补0;

        右移:移出去的丢掉,高位补符号位;

5.字节长度不一样,如何赋值

(1)长字节——》短字节

        低字节直接拷贝,高字节直接丢弃。

(2)短字节——》长字节

        低字节直接拷贝,

        如果短的是有符号数,高位就全补符号位。

        如果短的是无符号数,高位就补0。

6.在计算机中,如何存一个字符

        保存的是这个字符的ASCII值,而不是它的形状。

7.在进行10的次方运算时要注意:

        字母e/E的前面必须有数字;后面必须为整数(正整数,负整数)

8.i++和++i的区别

        表达式i++的值为i,而完成表达式之后的值为i+1;

        表达式++i的值为i+1,完成表达式之后的值任然是i+1。

9.运算符的惰性运算(&& ||)

        (1)当&&左边的值为0时,不会计算&&右边的值。

        (2)当||左边的值为1时,不会计算||右边的值。

eq:

main()

{

        int i=1,j=1,k=2;

        if((j++ || k++) && i++)

                printf("%d %d %d\n",i,j,k);

}

输出结果为:2 2 2

10.默认类型

        c语言中,数字3默认为int类型;数字3.0默认为double类型。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值