请用C语言在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中
来源:互联网 发布:mac苹果系统如何更新 编辑:程序博客网 时间:2024/05/17 02:56
#include <stdlib.h>
#include <stdio.h>
void add64(unsigned int add1,unsigned int add2,unsigned int *pSumHigh,unsigned int *pSumLow)
{
*pSumLow = add1 + add2;
if(*pSumLow < add1 || *pSumHigh < add2)
{
*pSumHigh = 1;
}
else
{
*pSumHigh = 0;
}
printf("h is 0x%x l is 0x%x\n",*pSumHigh,*pSumLow);
}
int main()
{
unsigned h,l;
add64(0xffffff00, 0x000000ff,&h,&l);
printf("h is 0x%x l is 0x%x\n",h,l);
add64(0xffffffff, 0x00000001,&h,&l);
printf("h is 0x%x l is 0x%x\n",h,l);
add64(0xffffff00, 0x000002ff,&h,&l);
printf("h is 0x%x l is 0x%x\n",h,l);
add64(0x00000001, 0x00000001,&h,&l);
printf("h is 0x%x l is 0x%x\n",h,l);
return 0;
}
运行结果:root@quieter:~# ./a.out
h is 0x0 l is 0xffffffff
h is 0x0 l is 0xffffffff
h is 0x1 l is 0x0
h is 0x1 l is 0x0
h is 0x1 l is 0x1ff
h is 0x1 l is 0x1ff
h is 0x0 l is 0x2
h is 0x0 l is 0x2
转自:http://blog.csdn.net/ysdaniel/article/details/6774329
- 请用C语言在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中
- 两个32位无符号长整数相加的函数,相加之和不能存储在64位变量中
- 请用C语言在32位环境下,设计一个32位无符号长整数求和函数,相加之和存储在两个32位无符号整数
- 判断两个64位无符号整数a和b相加是否溢出
- 汇编两个8位无符号数相加
- 在一个无符号整数中翻转位的顺序
- 用位实现两个数的相加
- Hailstone 在32位无符号整数中最大的跳跃次数
- 利用位运算实现两个整数相加
- 两个n位二进制整数相加问题
- 位运算实现两个整数相加
- 求两个整数相加的进位次数--位运算
- 两个n位二进制整数相加的问题
- 计算两个整数相加之和
- 两个超级长的整数相加减
- 两个大数(位数在50位以上)相加
- 在n个整数中找到相加之和为t的所有组合
- 用位运算实现两整数相加
- ubuntu下终端中文乱码解决方案
- 熊猫烧香病毒 - 核心源码 (仅供研究,后果自负)
- [每天一个Linux小技巧] 查看可执行文件的编译器版本
- SQL语句
- 链表操作练习——学生信息链表
- 请用C语言在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中
- m_pMainWnd = &dlg错误解决方法
- 文件搜索神器everything 你不知道的技巧总结
- HTML中的表单标签
- android4.1+ ListView 不滚动
- 2013.9.29一个数组里装了26个字母中的一部分,怎么知道哪些没有在该数组中?
- 【书籍推荐】代码大全(第2版)英文版
- 向cinder稳定版本修复bug
- 实模式和保护模式