社区
C语言
帖子详情
请问:哪一位大侠有在32位机器上实现64位除法的程序呀 C码的.
cpaal
2007-08-26 08:52:58
请问:哪一位大侠有在32位机器上实现64为除法的程序呀
{
unsigned int hight;
unsigned int low;
}
如果可以给出小数的前2位最好,如果没有就算了 我再自己想办法,
我就100分,倾力奉献.
...全文
772
17
打赏
收藏
请问:哪一位大侠有在32位机器上实现64位除法的程序呀 C码的.
请问:哪一位大侠有在32位机器上实现64为除法的程序呀 { unsigned int hight; unsigned int low; } 如果可以给出小数的前2位最好,如果没有就算了 我再自己想办法, 我就100分,倾力奉献.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cpaal
2007-09-21
打赏
举报
回复
用的是vxworkx 给硬件遍程序. 没有64位的,不是windows.
既然有写的就都给分把. 算是缘分.
唯一一个给出程序的 无论是否正确 都多给点把.
等了很多天都没有人给 程序只好按照 前几楼说的 自己写了.呵呵已经搞定.
chen_de_sheng
2007-09-19
打赏
举报
回复
顶楼上的 double
Treazy
2007-09-18
打赏
举报
回复
奇怪了,double为什么不用呢?
expter
2007-09-18
打赏
举报
回复
?
iwillalwaysloveyou
2007-09-08
打赏
举报
回复
32位x86 cpu直接支持64位除法,用汇编很少的几行指令
Hunter8212
2007-09-07
打赏
举报
回复
MARK了!
expter
2007-09-07
打赏
举报
回复
mark
xsUMBRO
2007-09-07
打赏
举报
回复
typedef signed __int64 INT64, *PINT64;
Int64 值类型表示值介于 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数。
Int64 为比较此类型的实例、将实例的值转换为它的字符串表示形式以及将数字的字符串表示形式转换为此类型的实例提供了相应的方法。
但,在 32 位 Intel 计算机上分配 64 位值不是原子操作;即该操作不是线程安全的。这意味着,如果两个人同时将一个值分配给一个静态 Int64 字段,则该字段的最终值是无法预测的。
有关格式规范代码如何控制值类型的字符串表示形式的信息,请参见格式化概述。此类型实现接口 IComparable、IFormattable 和 IConvertible。使用 Convert 类进行转换,而不是使用此类型的 IConvertible 显式接口成员实现。
楼主怎么遇到这个问题的,具体什么环境?
chai2010
2007-09-06
打赏
举报
回复
以前做rsa的时候用的一个函数:
// 计算(u*v)%m
unsigned mul_mod(unsigned u, unsigned v, unsigned z)
{
// 如果u*v没有溢出, 则直接计算
if((u*v)/u == v) return (u*v)%z;
// 进行长乘法(结果为64位)
unsigned u0, v0, w0;
unsigned u1, v1, w1, w2, t;
u0 = u & 0xFFFF; u1 = u >> 16;
v0 = v & 0xFFFF; v1 = v >> 16;
w0 = u0*v0;
t = u1*v0 + (w0 >> 16);
w1 = t & 0xFFFF;
w2 = t >> 16;
w1 = u0*v1 + w1;
// x为高32位, y为低32位
unsigned x = u1*v1 + w2 + (w1 >> 16);
unsigned y = u*v;
// 进行长除法(被除数为64位)
for (int i = 1; i <= 32; i++)
{
t = (int)x >> 31; // All 1's if x(31) = 1.
x = (x << 1) | (y >> 31); // Shift x || y left
y <<= 1; // one bit.
if((x|t) >= z) { x -= z; y++; }
}
return x; // y为商, x为余数
}
星羽
2007-08-27
打赏
举报
回复
double
_int64
laiwusheng
2007-08-27
打赏
举报
回复
c interface and implement
cpaal
2007-08-27
打赏
举报
回复
晕 有什么资料好学的吗?
100分呢 也不少了 兄弟门就没有自己原先保存过的关于这个方面的代码吗?
sunlin7
2007-08-27
打赏
举报
回复
直接用__int64 a, b, c;声明变量,使用c = a / b;即可,但是仅整除,没有小数点。
cpaal
2007-08-27
打赏
举报
回复
晕 标准C里没有 _int64.
用的是vxworks
iambic
2007-08-26
打赏
举报
回复
32位机器上也有64位的整数和浮点数。
agaric
2007-08-26
打赏
举报
回复
可以学习一下任意精度算法,不只64位
sunlin7
2007-08-26
打赏
举报
回复
数据结构与算法的书上有这样类型的算法,用分部除法。自己耐心写吧,很简单的。
在ubuntu
64位
环境中编译
32位
程序
在ubuntu
64位
环境中编译
32位
程序
64位
进程调用
32位
DLL详解
公司开发开发环境是
64位
,在读取一些加密文件时使用了第三方
32位
DLL。那么问题来了怎样在
64位
环境下调用
32位
DLL — — — —开启探索之旅 相关资料: 微软公司的官方网站针对这个问题描述如下: 在
64位
的windows系统中,一个
64位
进程不能加载一个
32位
dll,同理一个
32位
进程也不能加载一个
64位
dll。但是,
64位
windows支持
64位
和
32位
进程(包括本机或跨机)间
32位
和
64位
下结构体内存对齐问题
1.先看
64位
下: #include
struct A { int a; char b; double c; char d; };struct B { char a; double b; char c; };int main() { printf("int =%lu,char=%lu,double=%lu\
32位
和
64位
这个文件夹并不存在,即在资源管理器中找不到,但当
32位
的应用
程序
尝试访问这个文件夹时,
64位
的Windows会把它重定向到真正的System32文件夹,从而提供了一种让
32位
应用
程序
访问
64位
系统文件的方法。本文3.1中,我们已经知道
64位
Windows通过System32和SysWoW64两件文件夹来区分
64位
和
32位
的系统文件,当
32位
的应用
程序
尝试访问System32文件夹的时候,系统会自动把它转到SysWoW64文件夹,这样
32位
应用
程序
在
32位
系统和
64位
系统就都可以运行了,
c语言数据类型
32位
移植到
64位
系统需要修改的地方
一、数据类型特别是int相关的类型在不同位数
机器
的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较: 16位平台 char 1个字节8位 short 2个字节16位 int 2个字节16位 long 4个字节
32位
指针 2个字节
32位
平台
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章