黑马程序员——学习整型变量

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 


1、改变整型变量占用的存储空间

64位编译器下:
short:2个字节,%hd;
short int:2个字节,%hd;
int:4个字节,%d;
long:8个字节,%ld;
long long:8个字节,%lld;
char:1个字节,%d;

通过代码计算字节的储存空间:
#include <stdio.h>
int main(){
    /*
     先确认二进制中最小值和最大值:举例short类型,2字节。
     最大值:0111111111111111;
     最小值:1000000000000000;
     如何表达最大值,通过short a = 1:
     1的二进制:0000000000000001;
     左位移15,末位补0,即可是最小值。
     由默认signed,可知最小值-1即可是最大值。
     */
    short a = 1;
    short min = a<<15;
    short max = min - 1;
    printf("min = %d\n",min);
    printf("max = %d\n",max);
}
输出结果:

min = -32768

max = 32767

这样可得short类型的储存范围:-32768~32767;
同理,int储存范围:-2147483648~2147483647;等。

2、改变整型变量的符号
signed表示的是有符号的数。
unsigned标识的是无符号的数。
改变一个数的符号:把最高位原本用来标识正负,现在用来参与计算。
通过代码确定unsigned的存储范围:
#include <stdio.h>
int main(){
    /*
     将有符号数变成无符号数
     */
    unsigned short a = 0-1;
    /*
    0二进制:0000000000000000
    1二进制:0000000000000001
    0需要向前借一位数,因此:
    0-1:   1111111111111111
    因此,第十六位上的1也要计算。得到最大值。
    因为没有符号位,所以最小值为0.
     */
    printf("%u\n",a);
}

计算结果:

65535

因此可以确定,unsigned short的存储范围是0~65535.







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值