1. 编程c语言字节的问题
8位就是8位二进制,每位为0或者1。int,long 能表示多个字节的有符号数,long表示的数比int大很多。一个字符一般是char数据类型,char一般是一个字节。
2. 计算机位数对c语言中随机数的结果是否有影响
是有影响的。比如说16位的机器int类型只占2个字节,最大可以表示2的16次方,32位的机器int类型占4个字节,最大可以表示2的32次方。因此产生的随机数范围也不同。
3. c语言的字节数是什么意思
int占多少个字节是由编译器决定的,ANSI标准定义int是占2个字节.
TC是按ANSI标准的,它的int是占2个字节的.
你可以在TC里试.printf("%d",sizeof(int));结果是2;
但是在VC里,一个int是占4个字节的,在VC里面,
printf("%d",sizeof(int));
cout<<sizeof(int);结果都是4.
不同的编译器,规定也不一样.
float,double也是一样的,在不同的编译器里,占的字节是不一样的.
4. c语言里字节与位数的问题
计算机都是按照2进制算的,一个字节是8个二进制位,无符号数表示范围是0-255。单精度数是按照IEE的规范编码的它分为小数部分和指数部分,每个部分又都是带符号的,小数部分去掉符号剩余的可以转换成十进制的准确位数就是7位。具体的你可以查一下浮点数的编码规则,然后自己换算一下就知道了。
5. C语言中的“高位字节”和“低位字节”是什么意思
通常我们从最高有效位(most significant digit)开始自左向右书写一个数字。在理解有效位这个概念时,可以想象一下你的支票数额的第一位增加1和最后一位增加1之间的巨大区别,前者肯定会让你喜出望外。
计算机内存中一个字节的位相当于二进制数的位,这意味着最低有效位表示1,倒数第二个有效位表示2×1或2,倒数第三个有效位表示2×2×1或4,依此类推。如果用内存中的两个字节表示一个16位的数,那么其中的一个字节将存放最低的8位有效位,而另一个字节将存放最高的8位有效位,见图10.5。存放最低的8位有效位的字节被称为最低有效位字节或低位字节,而存放最高的8位有效位的字节被称为最高有效位字节或高位字节。
高位字节 低位字节
↓--------------------------↓ ↓---------------------------↓
15 14 13 12 11 10 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.
6. 小白求教C语言得字节是什么意思》它有什么作用
这个不是C语言的知识,是计算机基础
在计算机中的存储数据是二进制存储,也就是说数据都是一串0、1组成的数字。比如00110011.
这里面,每一位二进制数字都叫一个比特,没8比特就是一个字节。字节就相当于是数据量的一个单位
7. C语言中数据类型所占字节数与它取值范围的关系
C语言中的数据类型,简单的可以分为整数类型和浮点数类型。所占字节数与取值范围的关系实际上是整数编码和浮点数编码的问题,整数编码的三种方式是原码、反码、补码,很容易理解,浮点数的编码格式使用的是IEEE754编码。
1、整数编码以字符类型为例。
字符类型占1个字节,共8位二进制bit位,因此排列组合数,有2^8 = 256种编码的方法。如果表示无符号字符类型,那一般来说表示【0,255】这256个数。
如果表示有符号char类型,如果表示正数,那最高位符号为0,因此可表示的最正整数是:
0-111 1111 ,转化成十进制就是127。同样的道理,符号为1表示负数。最小的负数是
1-000 0000,转化成十进制数就是-128,因此有符号char类型表示的范围是[-128,127]。
一般来说,假设整型数据类型占的二进制位数n,如果表示无符号整数则取值范围是[0,2^n-1],如果表示有符号整数,【-2^(n-1) , 2^(n-1) - 1] 。
2、浮点数类型
浮点数编码一般采用的是IEEE754的编码规则,这个编码格式主要指出了浮点数有效数字、指数以及符号位所占的二进制位数。简单概括为:
格式 长度 符号位 指数位 尾数位 有效位数 指数偏移 尾数说明
单精度 32 1 8 23 24 127 有一位隐含位
双精度 64 1 11 52 53 1023 有一位隐含位
扩展双精度 80 1 15 64 64 16383 没有隐含位
注意:扩展双精度格式没有隐含位,因此它的有效位数与尾数位数一致,而单精度和双精度格式均有一位隐含位,因此它们的有效位数比尾数位数多1。
一般很少自己手动来算浮点数的取值范围,可以使用如下程序来计算。
#include<stdio.h>
typedefstructFP_SINGLE
{
unsigned__int32fraction:23;
unsigned__int32exp:8;
unsigned__int32sign:1;
}fp_single;
typedefstructFP_DOUBLE
{
unsigned__int64fraction:52;
unsigned__int64exp:11;
unsigned__int64sign:1;
}fp_double;
typedefstructFP_EX_DOUBLE
{
unsigned__int64fraction;
unsigned__int32exp:15;
unsigned__int32sign:1;
}fp_ex_double;
intmain()
{
floatx;
fp_single*fp_s=(fp_single*)&x;
fp_s->sign=0;
fp_s->exp=0xfe;
fp_s->fraction=0x7fffff;
printf("float最大数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0x1;
fp_s->fraction=0x0;
printf("float最小数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0;
fp_s->fraction=0x1;
printf("float最小弱规范数:%le ",(double)x);
doubley;
fp_double*fp_d=(fp_double*)&y;
fp_d->sign=0;
fp_d->exp=0x7fe;
fp_d->fraction=0xfffffffffffff;
printf("double最大数:%le ",y);
fp_d->sign=0;
fp_d->exp=0x1;
fp_d->fraction=0x0;
printf("double最小数:%le ",y);
fp_d->sign=0;
fp_d->exp=0;
fp_d->fraction=0x1;
printf("double最小弱规范数:%le ",y);
charch[10];
fp_ex_double*fp_ex_d=(fp_ex_double*)ch;
fp_ex_d->sign=0;
fp_ex_d->exp=0x7ffe;
fp_ex_d->fraction=0xffffffffffffffff;
//不知道扩展双精度浮点数如何输出,
//不过可以用od跟踪,然后找到ch[0]的地址,在数据窗口中选择浮点80为长双精度,
//就可以看到数值了。
fp_ex_d->sign=0;
fp_ex_d->exp=0x1;
fp_ex_d->fraction=0x8000000000000000;
fp_ex_d->sign=0;
fp_ex_d->exp=0;
fp_ex_d->fraction=0x1;
return0;
}
8. C语言中字节问题
不同的编译器所规定的字节数有所差异,可以用函数sizeof()进行测试,例如想测试int类型占多少字节:printf("sizeof(int)=%d\n",sizeof(int));结果就是int类型所占的字节数!对于其他的类型一样适用...楼主可以亲自尝试一下,呵呵,还有什么不懂么?