易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi 与 C# 位运算 有好大区别,请教各位!

delphi 函数:

function RB(A: longint): longint;
begin
  Result := (A shr 24) or ((A shr 8) and $FF00) or ((A shl 8) and $FF0000) or (A shl 24);
end;


我转成C#:

        private int RB(int A) {
            return (A >> 24) | ((A >> 8) & 0xFF00) | ((A < < 8) & 0xFF0000) | (A < < 24);
        }

结果很奇怪:
我的A值为:-2143996893

delphi 的结果是: 590624128
c#:-128

请各位帮尽快分析一下我是否转错了,谢谢~!
溢出了?

引用
溢出了?


但 delphi 的结果是没有溢出的啊?

delphi是longint,你找找c#的对应类型

引用
delphi是longint,你找找c#的对应类型


longint 就是 integer,对应 C# int 这个应该没有错。

查过好像是一样,那就不清楚了


引用
在 x86 平台中,c 类语言的右移是跟整数变量的类型是否有符号有关
而 pascal 语言不支持带符号右移的语法,也就是说,delphi 的右移只相当于 c 类语言中无符号整数的右移



非常感谢!


相关问答:

C#调用 C DLL问题,懂的来抢分了

//C 接口
extern "C"
{
  TESSDLL_API int __cdecl GetTessText(const char *imagefile, char *text);  
}
//我在C#中声明
//调用C DLL 中的函数
[DllImport("OCRapi.dll&quo ......

C#asp.net生成 Excel的问题

网上看了很多,好像这样调用很好:Excel.Application();
但是需要引入什么命名空间或者dll才能运行Excel这个类呢?

Excel.dll

Excel.dll在Excel安装程序下,
using Microsoft.Office.Interop.Excel;
......

C#如何向access数据库中写入一行数据?

也就是向数据库中添加一条记录。请指教,谢谢。
DataSet Ds = new DataSet();
            using (SqlConnection Conn = new SqlConnection("server=.;uid=sa;pwd=1234;data ......

请教delphi中使用access数据库进行数据导入的问题

向各位高手求助。
我用delphi2009编写了一个管理系统,使用的是access数据库。现在想通过多人一起录入数据后,将数据导出,导出的数据库包含多个相同的表。再将导出的数据依次导入到同一个数据库的相同表中,导入 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号