C语言四字节数补码程序,C语言中显示变量所占字节数;字节、字、字长;原码、反码、补码...

字节(Byte 发音:/‘bait/)

在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。

字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制。

转换关系

8bit=1byte

1024byte=1kb

1024kb=1mb

1024mb=1gb

1024gb=1tb

有些操作系统和处理器不把它们的标准字长称作字,相反,出于历史原因和某种主观的命名习惯,它们用字来代表一些固定长度的数据类型。比如说,一些系统根据长度把数据划分为字节(byte,8位),字(word,16位),双字(double words 32位)和四字(quad words 64位),而实际上该机是32位的。在本书中—在Linux中一般也是这样—象我们前面所讨论的那样,一个字就是代表处理器的字长

Type                                                      Size

char, unsigned char, signed char      1 byte

short, unsigned short                         2 bytes

int, unsigned int                                  4 bytes

long, unsigned long                            4 bytes

float                                                      4 bytes

double                                                  8 bytes

long double                                          8 bytes

符号属性           长度属性         基本型         所占位数          取值范围                       输入符举例                     输出符举例

--                        --              char               8            -2^7 ~ 2^7-1                    %c                             %c、%d、%u

signed                --              char               8            -2^7 ~ 2^7-1                    %c                             %c、%d、%u

unsigned            --              char               8            0 ~ 2^8-1                          %c                             %c、%d、%u

[signed]           short           [int]              16          -2^15 ~ 2^15-1                %hd

unsigned         short            [int]             16           0 ~ 2^16-1                        %hu、%ho、%hx

[signed]             --               int                32          -2^31 ~ 2^31-1                 %d

unsigned            --               [int]             32           0 ~ 2^32-1                        %u、%o、%x

[signed]           long             [int]             32           -2^31 ~ 2^31-1                %ld

unsigned         long             [int]             32           0 ~ 2^32-1                        %lu、%lo、%lx

[signed]         long long       [int]             64          -2^63 ~ 2^63-1                 %I64d

unsigned       long long        [int]             64          0 ~ 2^64-1                        %I64u、%I64o、%I64x

--                     --               float             32           +/- 3.40282e+038              %f、%e、%g

--                     --               double         64           +/- 1.79769e+308               %lf、%le、%lg %f、%e、%g

--                   long             double         96          +/- 1.79769e+308                %Lf、%Le、%Lg

int的长度,是16位还是32位,与编译器字长有关。

16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC使用的编译器cl.exe)下,int为32位。

那八个位能表示多少?

最小:00000000 最大:11111111 这就是8位 也叫一个字节

如果用数没有正负之分那可以表示 0~255 共256个数字. 也可以叫做 2的8次方,你用计算器算算,2的8次方是不是等于256?

如果数有正负之分那可以表示-128~+127 也是256个数,因为8位里面拿走一个位用来表示正负了,所以只能表示最大127

/* 输出不同类型所占的字节数*/

#include

void main()

{

/* sizeof()是保留字,它的作用是求某类型或某变量类型的字节数, */

/* 括号中可以是类型保留字或变量。*/

/*int型在不同的机器,不同的编译器中的字节数不一样,*/

/*一般来说在TC2.0编译器中字节数为2,在VC编译器中字节数为4 */

printf("The bytes of the variables are:/n");

printf("int:%d bytes/n",sizeof(int));

/* char型的字节数为1 */

printf("char:%d byte/n",sizeof(char));

/* short型的字节数为2 */

printf("short:%d bytes/n",sizeof(short));

/* long型的字节数为4 */

printf("long:%d bytes/n",sizeof(long));

/* float型的字节数为4 */

printf("float:%d bytes/n",sizeof(float));

/* double型的字节数为8 */

printf("double:%d bytes/n",sizeof(double));

/* long double型的字节数为8或10或12 */

printf("long double:%d bytes/n",sizeof(long double));

getchar();

}

在计算机系统中,数值一律用补码来表示(存储)。 注意模的概念。

对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2(8)。 在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。

原码、反码、补码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值