1楼:匿名用户
区分编译器类型,long数据赋值给int数据会有不同的结果。
1 16位编译器:
int型变量占2字节,long类型变量占4字节。当long赋值给int时,会截取低两字节数据给int。
如long a = 0x12345678;
int b = a;
则b的值为0x5678。
2 32位编译器:
int和long都是占4字节,所以二者赋值不会有任何改变。
3 64位编译器:
int占4字节,long占8字节。当long赋值给int时,会截取低四字节数据给int。
2楼:匿名用户
long好像是64位,int是32位,在内存中的表示是:低位在左,高位在右。long的65536的十六进制00010000h,分高低位在内存中放的位置为0000 0001,赋值给int时,只截取前面部分的0000,所以就是值就是为0了
c语言中,如何将long int型变量的地址赋给char型变量?
3楼:匿名用户
char不行吧 ,肯定要字符串啊
string s;
long int i;
s=(char*)&i;试试
有关c语言中int型数据的取值范围的问题
4楼:匿名用户
计算机内的数据都是补码形式的。因为正数的补码和原码相同,所以正数存放的是他的原码,负数是存放的他的补码(补码求法:取负数的绝对值写成二进制形式,按位取反,加1,就得到了他的补码),这样是为了计算机运算时的简单。
【-32767】补=10000000 00000001 【32767】补=【32767】原=01111111 11111111
计算-32767+32767时计算机内的运算就是:10000000 00000001+01111111 11111111=00000000 00000000
是不是简单很多呢?这下明白了吧?
5楼:匿名用户
最前面的一位是表示它的符号!
c语言 关于“长”数据赋给“短”变量的问题,比如long int 赋值给int 中怎么样才能没有误差?
6楼:匿名用户
在低位部分的首位不是1时不会有误差。
如果低位部分首位是1,那就会出现你看到的负值了。
7楼:叶小怜
当long int的值的范围在int之内时
8楼:匿名用户
这就是典型的赋值溢出。
由于整型数据在内存中是有补码形式存在。
long型赋值给short型时,去掉高位部分。
如果想不产生这种问题。那么long型的数据范围。一定要在short型范围之内。也就是说。必须在-32768~32767之间。
c语言中double 和int型的数据之间可相互赋值?
9楼:匿名用户
可以。 如:
double a=1.2;
int b;
b=a; b=1;//取整了
int a=1;
double b;
b=a; b=1.00000
(1)double(双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。
(2)int是将一个数值向下取整为最接近的整数的函数。int是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。
c语言中 长整型long 低16位 赋给整型int 语句如何写?
10楼:匿名用户
#include "stdio.h"
void main()
11楼:示申佥
用按位与运算处理
long a=90;
int b=0xffff &a
0xffff是16进制的
,转成二进制: 1111 1111 1111 111116个1,
0xffff&a
之后,除了低16位,其它位全部被置0
达到了把低16位得出来,赋给b的目的。
12楼:匿名用户
位运算,用&强制将高位置空,然后赋值给int即可
c语言中long型的65530转化为int型是多少啊?为什么啊?
13楼:匿名用户
int的范围是-32768至+32767,这个long的65530超过int的取值范围了。先把long的值转换成2进制,long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃。将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。
14楼:上帝模式
还是65530,long型与int都是占4个字节,long转换为int不需要强制减少字节
下面是测试程序
void main( )
15楼:匿名用户
你试试这样:
long a=65530;
printf("%d",(int)a);
c语言中将一个浮点型赋值给整型时,会不会四舍五入?
16楼:幻翼高达
c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算。
将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:
赋值时的类型转换实际上是强制的。
例如执行赋值后,无论5.4还是5.6都会变成5。
17楼:_梦幻阳光
不会的,不过可以写一个函数自己转换啊
#include
int fun(float x)
int main()
打印的为3和4,c语言很灵活的,楼主想要什么几乎都能实现
18楼:匿名用户
不会的,如int x; 如果有 x=4.78; 则x的值是4
19楼:匿名用户
不会,后面的小数就直接没了,只有整数部分了
采纳我哦
20楼:匿名用户
不会的啦,整型的话,1/2=0,而不是0.5或者1,但整型变成浮点型要强制类型转换,不知这么解释明白不。?
21楼:龍__鳳
不会的,看程序的运行结果:
22楼:路过
你好,不会的。浮点型数据赋给整型时,浮点型就会被自动转换成整型,整型只是整数部分。
希望能够帮到你。
23楼:匿名用户
不会,一般是给你强转成整形了,小数位就没了,四舍五入是不存在的
24楼:匿名用户
不会,只会把整数部分赋给整型变量
25楼:匿名用户
不会,比如float a=4.45 那么 printf("%d",a);输入为4,直接把小数点后面的数删去,不是四舍五入
c语言能将long类型直接赋值给longlong类型吗
26楼:匿名用户
可以,以上运行过程中会自动将long类型数据转换为long long类型,而后赋值。
C语言中如何把感叹号!赋值给字符型常量
1楼 匿名用户 赋值给一个字符型常量是什么意思?c语言中只有变量才能够赋值,如一个字符型变量ch char ch 如是想用一个符号来表示一个常量,可以通过宏定义语句实现,如定义ch为常量 define ch 这样程序中就可用ch表示感叹号了。但是这样的定义在程序中只能做一次,即ch定义后不能再修改。...