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

来源:互联网 发布:mac os x 最新版本 编辑:程序博客网 时间:2024/06/06 15:39

-----------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.







0 0
原创粉丝点击