microsoft / microsoft/calculator

Programmer calculator treats MSB as sign bit, no option to remove sign bit

Open
#2,155 0 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement
Dominant language
C#
Stars
31.1k
Forks
5.8k
PR merge metrics
No merged PRs in 30d

Description

Problem Statement

In the Microsoft Calculator application's programmer mode, the calculator treats the Most Significant Bit (MSB) as a sign bit, which may not be desired behavior for all users. Currently, there's no option provided to remove the sign bit and produce the result accordingly.

Evidence or User Insights

calculator_suggest
Screenshot Provided: Attached screenshot showcasing the issue in the Programmer mode of Microsoft Calculator. The screenshot clearly illustrates the MSB being treated as a sign bit, affecting the calculation output.

The MSB is interpreted as a sign bit without an option to toggle this behavior. The need for greater flexibility in binary calculations.
This evidence indicates a clear need for implementing an option to toggle the treatment of the MSB as a sign bit, providing users with more control over their calculations and improving the overall user experience.

Proposal

  1. Open Microsoft Calculator.
  2. Switch to the Programmer mode.
  3. Perform calculations involving binary numbers with MSB set as 1.
  4. Notice that the result is interpreted with the MSB as a sign bit.

Goals

Users should have the option to choose whether the MSB should be treated as a sign bit or not in the Programmer mode of Microsoft Calculator. This option could be provided through settings or configuration.

Non-Goals

The non-goal is to implement a complete overhaul or redesign of the Microsoft Calculator application. This issue specifically focuses on improving the functionality of the Programmer mode by providing an option to toggle the treatment of the MSB as a sign bit. It's important to clarify this to avoid scope creep and maintain focus on the specific problem at hand.

Low-Fidelity Concept

A low-fidelity concept could be a simple mockup or wireframe demonstrating the addition of a toggle switch or checkbox within the settings menu of the Programmer mode. This concept would illustrate how users could enable or disable the treatment of the MSB as a sign bit.

Requested Assignment

I want to suggest a feature and let someone else implement it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Programmer mode's calculation logic and its settings entry points; the issue names no files or tests. Define how the sign-bit option should appear and affect calculations, then add coverage for binary values with the MSB set. Done means users can toggle signed versus unsigned treatment without changing unrelated Calculator modes.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.