怎么样才能把一个integer类型的变量转化为 smallint 类型的变量 delphi中有没有 c语言中直接截取字节的函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以转换的,delphi中可以使用汇编语句进行转换 移位之后应该还要截取才行啊。delphi不能在字节数不同的类型之间进行转化。恩,对了,用 无符号指针加移位可以吗? smallint:是16位的,integer是32位的,我写到你信箱吧 1、TBitList = type Word;//不能用smallint TLongBitList = type LongInt2、编写过程,将指定位设置为0procedure ClearLBit(var Body: TLongBitList; const I: Byte);asm and edx, $ff // btr [eax], edx //清除相应的位end;3、循环调用clearlbit清除16-31位,剩下的就是0-15位的word了4、如果你存在负数,处理方法有一些不同,看看你的情况再说 谢谢小鱼,具体的情况是,我要把一个integer类型的值赋给一个 smallint变量。因为我可以确认integer的值的范围在smallint的最大值和最小值的范围以类,因为从integer到smallint不能直接转化,所以我喜欢截取integer的一部分,即0-15位让之转化成smallint var S:SmallInt; I:Integer;begin I:=$FFFF; S:=SmallInt(I); ShowMessage(IntToStr(S));end;就这样啊!不懂干吗这么复杂? 如果你可以确认integer的值的范围在smallint的最大值和最小值的范围以内,就可以直接用BlueTrees(蜗牛) 的方式就行了,若在范围之外就不行了。 bs Rave 问题,多谢了 深圳睿安科技招人-进者有分散 【求助】哪位热心人给解释一个键盘事件! 求助!!简单问题答对有分 如何安装ocx 控件 help!!!高分求一本delphi书籍!!!!!!!!!!!!!!! 谁能提供画线或者画箭头的控件? 关于SQL SERVER 数据库连接? Idhttp Post 登陆(看似抓包数据简单但是我很菜) 编写notepad的时候,richedit重的汉字太小,看着台别扭 怎么版? 谁知道sqlserver 是否存在伪列
delphi不能在字节数不同的类型之间进行转化。
恩,对了,用 无符号指针加移位可以吗?
TLongBitList = type LongInt
2、编写过程,将指定位设置为0
procedure ClearLBit(var Body: TLongBitList; const I: Byte);
asm
and edx, $ff //
btr [eax], edx //清除相应的位
end;
3、循环调用clearlbit清除16-31位,剩下的就是0-15位的word
了
4、如果你存在负数,处理方法有一些不同,看看你的情况再说
具体的情况是,我要把一个integer类型的值赋给一个 smallint变量。
因为我可以确认integer的值的范围在smallint的最大值和最小值的范围以类,因为从integer到smallint不能直接转化,所以我喜欢截取integer的一部分,即0-15位让之转化成smallint
S:SmallInt;
I:Integer;
begin
I:=$FFFF;
S:=SmallInt(I);
ShowMessage(IntToStr(S));
end;
就这样啊!不懂干吗这么复杂?