方式一:
BigDecimal.setScale用于格式化小数点
setScale(1)表示保留以为小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setSca...
分类:
编程语言 时间:
2014-08-09 11:44:27
阅读次数:
250
很容易想到为二进制的与或非。
加法分为三步:
1 各位相加不进位 0 + 0 =0, 0+1 = 1,1+0=1,1+1=1,很明显是异或运算
2 进位 1+1 =10进位,其余均不进位 ,进行左移动一位
3 一直循环
代码:
#include
using namespace std;
int sum(int data1,int data2){
int sum,carry;
...
分类:
其他好文 时间:
2014-08-07 19:02:00
阅读次数:
196
/*进制转换
Problem Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
...
分类:
其他好文 时间:
2014-08-05 11:24:30
阅读次数:
176
今天看到剑指offer上的第12题,题目如下:
输入数字n,按顺序打印出从1到最大的n位十位数。比如输入3,则打印出1,2,3,...,999。
当我看到这个题目的时候,第一感觉就是用递归,为什么呢?首先得从我们的一个实际数字出发,比如123,我们对数字加1,实际上分为如下两个步骤:
步骤1:最低位加1;
步骤2:若发生进位,则向更高位传播该进位的影响(这也是递归的所在)。
在完成这个算法题之前,我想插一句“细节决定成败!”,我们写一个程...
分类:
其他好文 时间:
2014-08-04 11:07:57
阅读次数:
256
一道笔试题~实现2个超大数据的加法运算,这2个超大数,意思就是long也装不下的数,就顶大概100位吧。这道题其实看上去很简单,但是实际上涉及到的知识点还是很多的,非常考验一个人的程序设计能力和对API的熟悉程度。思路很简单,这么大的数,long都存不下,那只能存在String中了,然后将每个数字取出,放到数组,由最末位开始计算,算加法,判断是否进位,进位则前位+1,若超过长度,则copy到新的数...
分类:
其他好文 时间:
2014-08-03 18:06:27
阅读次数:
260
1)使用位运算,sum1=a^b 相当于不进位的加法,因为0+1=1.1+0=1.1+1=0(因为不进位)0+0=0 正好是或运算
2)sum2=(a&b)<<1,相当于算进位的数,因为只有1+1时进位
3)结果就是sum1+sum2,当然如果这个加法还需要进位就执行第四步
4)重复上面的过程一直到进位数(a&b)<<1为零,也就是不需要进位为止...
分类:
其他好文 时间:
2014-08-03 10:20:35
阅读次数:
205
char a[Max],b[Max],c[Max],sum[Max];
void jia(char str1[],char str2[])
{
int i,j,k,z;
k=0;z=0;
for(i=strlen(str1)-1,j=strlen(str2)-1;i>=0||j>=0;i--,j--) //核心,加法以及进位
{
if(i>=...
分类:
其他好文 时间:
2014-08-02 20:57:34
阅读次数:
253
用C其实也挺简单的,有个投机取巧的办法我的想法是,既然希望保留两位小数,那么就必须看第三位小数,如果大于5,就进位,那么我们可以让第三位加上5,因为最后第三位是舍掉的,因此无论怎么改变第三位也没有问题。这样就想起了强制类型转换,呵呵,自己乘上100,然后加上0.5,再强制类型转换成int,将第三位舍...
分类:
编程语言 时间:
2014-08-02 20:44:33
阅读次数:
231
程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(Cy):进位标志位。PSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。.....
分类:
其他好文 时间:
2014-08-02 10:00:43
阅读次数:
191
按位与(&)运算方式:对应的两个二进位均为1时,结果位才为1,否则为09(00001001)5(00000101)1(00000001)9&5=1按位或运算方式:对应的两个二进位只要有一个为1,结果位就为19(00001001)5(00000101)13(00001101)9|5=13按位异或运算方...
分类:
其他好文 时间:
2014-08-01 10:30:51
阅读次数:
153