易截截图软件、单文件、免安装、纯绿色、仅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#如何判断连接sql server数据库成功?

C#如何判断连接sql server数据库成功?
try
{
connection.connect()
return true;
}
catch()
{
return false;
}

楼主很着急,开了几贴了。

引用
try
{
connection.connect( ......

ACCESS的自定义函数在delphi里怎么用呢...

我在模块里自定义了一个函数:stradd()

可是在adoquery1.sql.add('select stradd(author) from book');
时提示stradd未定义...

这个问题有什么办法可以解决的吗? 非常感激!


(在A ......

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

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

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

向各位高手求助。
我用delphi2009编写了一个管理系统,使用的是access数据库。现在想通过多人一起录入数据后,将数据导出,导出的数据库包含多个相同的表。再将导出的数据依次导入到同一个数据库的相同表中,导入 ......

转帖:DELPHI编写服务程序总结一--编写技巧

原文地址:http://hi.baidu.com/sqldebug/blog/item/8e2749213082c0589922ed61.html

直接贴过来的,有点乱,大家凑合看。

一、服务程序和桌面程序的区别

Windows 2000/XP/2003等支持一种叫做“ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号