Delphi的数据类型(50分)

  • 主题发起人 主题发起人 xx
  • 开始时间 开始时间
X

xx

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi里有没有类似于unsigned short的数据类型?12位,范围:0-4095?
我有一文件,它是按unsigned short存储的数据(每个数据占2 bytes)。
还望大虾指教!
 
Integer -2147483648..2147483647 signed 32-bit
Cardinal 0..4294967295 unsigned 32-bit
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword.
Type Range Format
Shortint -128..127 signed 8-bit
Smallint -32768..32767 signed 16-bit
Longint -2147483648..2147483647 signed 32-bit
Int64 -2^63..2^63? signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
//word may be what you want
 
hubdog真快,真全!
faint!
 
感谢hubdog!
可是可是我需要的数据是存成12位的哎,不是16位,虽然也是占2个字节。好象
高四位无效。所以当我想得到4095这个数时,用word类型得到的却是65535!
所以我想问一下,Delphi中有无数据类型直接存取12位的无符号短整数?
我该怎样解决这个问题?
 
用Char读取,自己在组合.BlockRead,
 
a 是你的数据
转换
(a and $0FFF)
 
如果有符号
a 是你的数据
转换
(a and $07FF) or ((a and $0800) shr 4)
 
读出的 a 本身就不对,FileLength div 16 <> FileLength div 12
 
多人接受答案了。
 
后退
顶部