Converting floating point numbers to integers without conversion instructionsMips floating point additionAlgorithm to store 64 bit number represented by a string in two 32b registers in MIPSConvert single precision floating point to half precision MIPSNormalizing a significand in MIPSMIPS - How to Convert a set of Integers into Single-Precision FloatsTrying to convert an asciiz 'integer' into an actual integer in MIPSReversing the bits of a number in MIPS assemblyAssembly MIPS: turning a decimal number to binary by shiftingMIPS Special Case Floating PointASCII Binary to Hexadecimal and Decimal
Risk of getting Chronic Wasting Disease (CWD) in the United States?
 
 Why doesn't H₄O²⁺ exist?
 
 What do the dots in this tr command do: tr .............A-Z A-ZA-Z <<< "JVPQBOV" (with 13 dots)
 
 Prove that NP is closed under karp reduction?
 
 Email Account under attack (really) - anything I can do?
 
 What typically incentivizes a professor to change jobs to a lower ranking university?
 
 I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine
 
 Why "Having chlorophyll without photosynthesis is actually very dangerous" and "like living with a bomb"?
 
 Why was the small council so happy for Tyrion to become the Master of Coin?
 
 Is it important to consider tone, melody, and musical form while writing a song?
 
 Why do I get two different answers for this counting problem?
 
 Writing rule stating superpower from different root cause is bad writing
 
 Languages that we cannot (dis)prove to be Context-Free
 
 How could an uplifted falcon's brain work?
 
 Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
 
 Is it unprofessional to ask if a job posting on GlassDoor is real?
 
 How does one intimidate enemies without having the capacity for violence?
 
 How is it possible to have an ability score that is less than 3?
 
 Problem of parity - Can we draw a closed path made up of 20 line segments...
 
 How to find program name(s) of an installed package?
 
 What does it mean to describe someone as a butt steak?
 
 An academic/student plagiarism
 
 To string or not to string
 
 A newer friend of my brother's gave him a load of baseball cards that are supposedly extremely valuable. Is this a scam?
Converting floating point numbers to integers without conversion instructions
Mips floating point additionAlgorithm to store 64 bit number represented by a string in two 32b registers in MIPSConvert single precision floating point to half precision MIPSNormalizing a significand in MIPSMIPS - How to Convert a set of Integers into Single-Precision FloatsTrying to convert an asciiz 'integer' into an actual integer in MIPSReversing the bits of a number in MIPS assemblyAssembly MIPS: turning a decimal number to binary by shiftingMIPS Special Case Floating PointASCII Binary to Hexadecimal and Decimal
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm working on a program that should convert a user inputted floating point number to an integer, I got it to work but only for floating point numbers that don't have a fractional part that exceeds 2^-1, which is obviously 1/2. It'll work for numbers like 75.5 or 2.5, but not a number like 75.625. I need to keep the code in this format, but I am not sure what I should make the program shift left and right (around the hashtags) by to cancel out the fractional part regardless of what the fractional part is.
.data
 Prompt: .asciiz "n Please Input a value for the float N = "
 result1: .asciiz " The converted N is "
.text
 li $v0, 4 # system call code for Print String
 la $a0, Prompt # loads address of prompt into $a0
 syscall # print the message in Prompt
 li $v0, 6 # System call code for Read Float
 syscall # read whatever you input float as 
 mfc1 $t1, $f0 # Stores the float value into the $t1
 srl $t2, $t1, 23 # srl by 23 to leave out the biased exponent and store it 
 in $t2
 add $s3, $t2, -127 # Subtract 127 to get the exponent
 sll $t4, $t1, 9 # Shift left and right by 9 to remove the exponent
 srl $t5, $t4, 9 
 addi $t6, $t5, 8388608 # Add the implied bit (2^24)
 add $t7, $s3, 9 # Add 9 to the exponent value
 sllv $s4, $t6, $t7 # Shifts the implied bit to 2^32 (32nd bit)
 ###########################
 rol $s5, $t6, $t7 #rotate to the left by whatever the exponent + 9 is to 
 get 
 the integer part of the number to the first few bits
 sll $s5, $s5, 1
 srl $s5, $s5, 1 # sll and srl cancels out the fractional part #should be 
 1001011 #s5 is the newly converted integer
 ######################
 li $v0, 4 # Tells computer to get ready to print a .asciiz number
 la $a0, result1
 syscall
 li $v0, 1 # Tells computer to get ready to print the converted integer 
 number
 move $a0, $s5 # Moves the contents of $s5 to %a0 so it can be called
 syscall # Returns the integer
mips
add a comment |
I'm working on a program that should convert a user inputted floating point number to an integer, I got it to work but only for floating point numbers that don't have a fractional part that exceeds 2^-1, which is obviously 1/2. It'll work for numbers like 75.5 or 2.5, but not a number like 75.625. I need to keep the code in this format, but I am not sure what I should make the program shift left and right (around the hashtags) by to cancel out the fractional part regardless of what the fractional part is.
.data
 Prompt: .asciiz "n Please Input a value for the float N = "
 result1: .asciiz " The converted N is "
.text
 li $v0, 4 # system call code for Print String
 la $a0, Prompt # loads address of prompt into $a0
 syscall # print the message in Prompt
 li $v0, 6 # System call code for Read Float
 syscall # read whatever you input float as 
 mfc1 $t1, $f0 # Stores the float value into the $t1
 srl $t2, $t1, 23 # srl by 23 to leave out the biased exponent and store it 
 in $t2
 add $s3, $t2, -127 # Subtract 127 to get the exponent
 sll $t4, $t1, 9 # Shift left and right by 9 to remove the exponent
 srl $t5, $t4, 9 
 addi $t6, $t5, 8388608 # Add the implied bit (2^24)
 add $t7, $s3, 9 # Add 9 to the exponent value
 sllv $s4, $t6, $t7 # Shifts the implied bit to 2^32 (32nd bit)
 ###########################
 rol $s5, $t6, $t7 #rotate to the left by whatever the exponent + 9 is to 
 get 
 the integer part of the number to the first few bits
 sll $s5, $s5, 1
 srl $s5, $s5, 1 # sll and srl cancels out the fractional part #should be 
 1001011 #s5 is the newly converted integer
 ######################
 li $v0, 4 # Tells computer to get ready to print a .asciiz number
 la $a0, result1
 syscall
 li $v0, 1 # Tells computer to get ready to print the converted integer 
 number
 move $a0, $s5 # Moves the contents of $s5 to %a0 so it can be called
 syscall # Returns the integer
mips
1
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00
add a comment |
I'm working on a program that should convert a user inputted floating point number to an integer, I got it to work but only for floating point numbers that don't have a fractional part that exceeds 2^-1, which is obviously 1/2. It'll work for numbers like 75.5 or 2.5, but not a number like 75.625. I need to keep the code in this format, but I am not sure what I should make the program shift left and right (around the hashtags) by to cancel out the fractional part regardless of what the fractional part is.
.data
 Prompt: .asciiz "n Please Input a value for the float N = "
 result1: .asciiz " The converted N is "
.text
 li $v0, 4 # system call code for Print String
 la $a0, Prompt # loads address of prompt into $a0
 syscall # print the message in Prompt
 li $v0, 6 # System call code for Read Float
 syscall # read whatever you input float as 
 mfc1 $t1, $f0 # Stores the float value into the $t1
 srl $t2, $t1, 23 # srl by 23 to leave out the biased exponent and store it 
 in $t2
 add $s3, $t2, -127 # Subtract 127 to get the exponent
 sll $t4, $t1, 9 # Shift left and right by 9 to remove the exponent
 srl $t5, $t4, 9 
 addi $t6, $t5, 8388608 # Add the implied bit (2^24)
 add $t7, $s3, 9 # Add 9 to the exponent value
 sllv $s4, $t6, $t7 # Shifts the implied bit to 2^32 (32nd bit)
 ###########################
 rol $s5, $t6, $t7 #rotate to the left by whatever the exponent + 9 is to 
 get 
 the integer part of the number to the first few bits
 sll $s5, $s5, 1
 srl $s5, $s5, 1 # sll and srl cancels out the fractional part #should be 
 1001011 #s5 is the newly converted integer
 ######################
 li $v0, 4 # Tells computer to get ready to print a .asciiz number
 la $a0, result1
 syscall
 li $v0, 1 # Tells computer to get ready to print the converted integer 
 number
 move $a0, $s5 # Moves the contents of $s5 to %a0 so it can be called
 syscall # Returns the integer
mips
I'm working on a program that should convert a user inputted floating point number to an integer, I got it to work but only for floating point numbers that don't have a fractional part that exceeds 2^-1, which is obviously 1/2. It'll work for numbers like 75.5 or 2.5, but not a number like 75.625. I need to keep the code in this format, but I am not sure what I should make the program shift left and right (around the hashtags) by to cancel out the fractional part regardless of what the fractional part is.
.data
 Prompt: .asciiz "n Please Input a value for the float N = "
 result1: .asciiz " The converted N is "
.text
 li $v0, 4 # system call code for Print String
 la $a0, Prompt # loads address of prompt into $a0
 syscall # print the message in Prompt
 li $v0, 6 # System call code for Read Float
 syscall # read whatever you input float as 
 mfc1 $t1, $f0 # Stores the float value into the $t1
 srl $t2, $t1, 23 # srl by 23 to leave out the biased exponent and store it 
 in $t2
 add $s3, $t2, -127 # Subtract 127 to get the exponent
 sll $t4, $t1, 9 # Shift left and right by 9 to remove the exponent
 srl $t5, $t4, 9 
 addi $t6, $t5, 8388608 # Add the implied bit (2^24)
 add $t7, $s3, 9 # Add 9 to the exponent value
 sllv $s4, $t6, $t7 # Shifts the implied bit to 2^32 (32nd bit)
 ###########################
 rol $s5, $t6, $t7 #rotate to the left by whatever the exponent + 9 is to 
 get 
 the integer part of the number to the first few bits
 sll $s5, $s5, 1
 srl $s5, $s5, 1 # sll and srl cancels out the fractional part #should be 
 1001011 #s5 is the newly converted integer
 ######################
 li $v0, 4 # Tells computer to get ready to print a .asciiz number
 la $a0, result1
 syscall
 li $v0, 1 # Tells computer to get ready to print the converted integer 
 number
 move $a0, $s5 # Moves the contents of $s5 to %a0 so it can be called
 syscall # Returns the integer
mips
mips
edited Mar 9 at 5:43
Lost Soul
asked Mar 9 at 2:37
Lost SoulLost Soul
357
357
1
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00
add a comment |
1
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00
1
1
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00
add a comment |
 0
 
active
oldest
votes
 Your Answer
 
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55073481%2fconverting-floating-point-numbers-to-integers-without-conversion-instructions%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
 0
 
active
oldest
votes
 0
 
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
 
But avoid …
- Asking for help, clarification, or responding to other answers.
 - Making statements based on opinion; back them up with references or personal experience.
 
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55073481%2fconverting-floating-point-numbers-to-integers-without-conversion-instructions%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Usually you would just use a cvt.w.s or cvt.w.d instruction to convert a float (or double) to integer...
– Chris Dodd
Mar 9 at 4:35
I can't use conversion instructions. I wish it were that easy haha
– Lost Soul
Mar 9 at 5:00