delphi的按位运算符有关问题
delphi的按位运算符问题
DWORD ShowFileSize(DWORD dwFileSizeHigh, DWORD dwFileSizeLow)
{
ULONGLONG liFileSize;
liFileSize = dwFileSizeHigh;
//移动到 32 位
liFileSize <<= SizeOf(DWORD) * 8
liFileSize += dwFileSizeLow;
return liFileSize;
}
问三个问题
1.ULONGLONG是否相当于Delphi的LARGE_INTEGER? Delphi下是否有64位的无符号整数类型?
2. liFileSize <<= SizeOf(DWORD) * 8 翻译成 liFileSize := liFileSize shl SizeOf(DWORD) * 8; 是否正确?
<<= 是等于shr 还是shl?
3.假如delphi的无符号64位整数,用IntToStr是否可以顺利转化为字符串?
谢谢~~
------解决方案--------------------
1 没有 int64是64位有符号整数
2 c不熟,感觉是对的
3 因为没有所以无所谓假如 vartostr
------解决方案--------------------
1. int64
2. 左移 shl 右移 shr
3. 可以
------解决方案--------------------
1.ulonglong是64位无符号的,D中是int64有符号64位的,从ulonglong转int64别担心,不会越界的
2.<<是左移,D的左移是shl,应该是对的
3.可以.IntToStr支持Int64
DWORD ShowFileSize(DWORD dwFileSizeHigh, DWORD dwFileSizeLow)
{
ULONGLONG liFileSize;
liFileSize = dwFileSizeHigh;
//移动到 32 位
liFileSize <<= SizeOf(DWORD) * 8
liFileSize += dwFileSizeLow;
return liFileSize;
}
问三个问题
1.ULONGLONG是否相当于Delphi的LARGE_INTEGER? Delphi下是否有64位的无符号整数类型?
2. liFileSize <<= SizeOf(DWORD) * 8 翻译成 liFileSize := liFileSize shl SizeOf(DWORD) * 8; 是否正确?
<<= 是等于shr 还是shl?
3.假如delphi的无符号64位整数,用IntToStr是否可以顺利转化为字符串?
谢谢~~
------解决方案--------------------
1 没有 int64是64位有符号整数
2 c不熟,感觉是对的
3 因为没有所以无所谓假如 vartostr
------解决方案--------------------
1. int64
2. 左移 shl 右移 shr
3. 可以
------解决方案--------------------
1.ulonglong是64位无符号的,D中是int64有符号64位的,从ulonglong转int64别担心,不会越界的
2.<<是左移,D的左移是shl,应该是对的
3.可以.IntToStr支持Int64