狂人C学习笔记(2)

主要内容:

1、计算机表示负数

原码表示法:最高位表示正负号,其余各位表示数值。0正,1负。

反码表示法:正数和原码的表示方法相同。对于负数,在最高位记为1,表示其为负数,在数值部分将各位取反,即0写为1,1写为0。

补码表示法:最常用的表示方法。正数的表示方法和以上两者相同。负数的表示方法是在反码表示法的基础上再加1。求负数的补码的另一种方法是:power(2,机器的位数)+这个负数。

怎样求补码?首先要知道机器的位数,然后按照原码-->反码-->补码的顺序计算。

看看在我的机器上,printf("%d\n",(-123%-2));    是-1耶~  

%,模是什么运算呢?如何处理负数呢?“在两个int做/运算的规定是向0取整的前提下,%运算的结果的符号总是和被除数一致”

“不深刻了解数据类型就不可能真正懂得C语言”


2、实现2的11到20次幂

#include<stdio.h>
#include<stdlib.h>
/*
计算a的b次方
*/
double  power(int a,int b)
{
        if(b==0)
        {
                return 1.0;
        }
        if(a==0)
        {
                return 0.0;
        }
        int temp=b>0?b:-b;
        double result=1.0;
        while(temp>0)
        {
                result=result*a;
                temp--;
        }
        if (b>0)
        {
                return result;
        }
        else
        {
                return 1.0/result;
        }
}
int main()
{
        double result;
        int i;
        for(i=11;i<=20;i++)
        {
                result=power(2,i);
                printf("2的%d次幂=%f\n",i,result);
        }
}
结果:

3、int类型

int,等价signed int,等价signed。范围INT_MIN~INTMAX,在limits.h文件定义。存储空间4Bytes,32bit

unsigned int,存储空间和int一样,范围0~UINT_MAX,2^32,后缀U或者u

long,等价long int,等价signed long,signed long int,精度至少32bits

unsigned long,等价unsigned long int,unsigned long,位数和long相同,后缀LU

short,等价short int,signed short int,至少具有16bits

long long,至少64位

4、char 类型

ASCII码,7个bits,最多128个字符。其中96个可打印,32个控制字符。字母A编号65D,字母a编号97D,大小写相差32D。

CHAR_BIT即为char类型的长度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值