summaryrefslogtreecommitdiff
path: root/45/CH6/EX6.8/example_6_8.sce
diff options
context:
space:
mode:
Diffstat (limited to '45/CH6/EX6.8/example_6_8.sce')
-rwxr-xr-x45/CH6/EX6.8/example_6_8.sce74
1 files changed, 74 insertions, 0 deletions
diff --git a/45/CH6/EX6.8/example_6_8.sce b/45/CH6/EX6.8/example_6_8.sce
new file mode 100755
index 000000000..cf9a6b752
--- /dev/null
+++ b/45/CH6/EX6.8/example_6_8.sce
@@ -0,0 +1,74 @@
+//example 6.8
+clc;
+clear;
+re=0;
+aaa=input('enter the number(in decimal) :');// taking the signed number
+m=aaa;
+if aaa<0 then
+ aa=-1*aaa;
+ else aa=aaa;
+end
+a=0;
+q=0;
+while(aa>0) //converting from decimal to binary
+ x=modulo(aa,2);
+ a= a + (10^q)*x;
+ aa=aa/2;
+ aa=floor(aa);
+ q=q+1;
+end
+mm=a;
+for i=1:8
+ a1(i)=modulo(a,10);
+ a=a/10;
+ a=round(a);
+ b1(i)=0;
+end
+b1(1)=1;
+if aaa<0 then // making two's complement if the number is less than zero
+ for i=1:8
+ a1(i)=bitcmp(a1(i),1);
+ end
+ car(1)=0;
+for i=1:8
+ c1(i)=car(i)+a1(i)+ b1(i); // adding one (as a part of finding 2's compliment
+ if c1(i)== 2 then
+ car(i+1)= 1;
+ c1(i)=0;
+ elseif c1(i)==3 then
+ car(i+1)= 1;
+ c1(i)=1;
+ else
+ car(i+1)=0;
+ end;
+end;
+c1(9)=car(9);
+re=0;
+format('v',18);
+ for i=1:9
+ re=re+(c1(i)*(10^(i-1)))
+ end;
+ printf('\nThe binary contents are %d\n\n',re );
+else
+ re=mm;
+ end;
+ if(aaa>0)
+ printf('\nThe biary contents are %d\n\n',mm);
+end;
+q=1;
+b=0;
+f=0;
+a=re;
+while(a>0) // converting the result to decimal then to hexadecimal
+ r=modulo(a,10);
+ b(1,q)=r;
+ a=a/10;
+ a=floor(a);
+ q=q+1;
+end
+for m=1:q-1
+ c=m-1
+ f = f + b(1,m)*(2^c);
+end
+hex=dec2hex(f);
+printf('The Hexadecimal contents are %sH',hex) ;//displayin the result \ No newline at end of file