<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4" -->

---
title: Unsigned comparisons using signed types – Daniel...
description: Fixed-precision integers are typically represented as either unsigned or signed. In C++20, signed integers must use two’s complement representation, which...
canonical: https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Unsigned comparisons using signed types – Daniel Lemire&#x27;s blog | daily.dev
og:description: Fixed-precision integers are typically represented as either unsigned or signed. In C++20, signed integers must use two’s complement representation, which...
og:url: https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4
og:image: https://api.daily.dev/og/posts/1d30QW4N4.png
og:image:alt: Unsigned comparisons using signed types – Daniel Lemire&#x27;s blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

[Daniel Lemire](https://daily.dev/sources/lemire)

[Read post](https://api.daily.dev/r/1d30QW4N4)

# [Unsigned comparisons using signed types – Daniel Lemire's blog](https://api.daily.dev/r/1d30QW4N4 "Go to post")

Fixed-precision integers are typically represented as either unsigned or signed. In C++20, signed integers must use two’s complement representation, which allows efficient arithmetic operations on both positive and negative values. This method uses the leftmost bit as the sign bit and involves flipping bits and adding one to represent negative numbers. Comparisons between signed types can be conducted as if they were unsigned by adjusting values correctly.

[#c](/tags/c "Check all #c posts")[#c++](/tags/c%2B%2B "Check all #c++ posts")[#computing](/tags/computing "Check all #computing posts")

Mar 24, 2025•2m read time•From [lemire.me](https://api.daily.dev/r/1d30QW4N4 "lemire.me")

[![Post cover image](https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bbe0457140c752c31de5a29e591a3e0c?_a=AQAEuj9)](https://api.daily.dev/r/1d30QW4N4 "Go to post")

30 Impressions

Comment

Bookmark

Copy

![Placeholder image for anonymous user](https://media.daily.dev/image/upload/s--qsFuKGv_--/t_logo,f_auto/public/noProfile)Share your thoughtsPost

[![Daniel Lemire's image](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/33b93b4f779a45bdaca4a8d3d678fe39)](https://daily.dev/sources/lemire)

[Daniel Lemire](https://daily.dev/sources/lemire "https://daily.dev/sources/lemire")

Authored by Daniel Lemire, a computer science professor and researcher, this blog covers a wide rang... Read more

21 Followers

•

127 Upvotes

#### Would you recommend this post?

Copy link

WhatsApp

Facebook

X

New Squad

Copy linkShare with your friends

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Unsigned comparisons using signed types – Daniel Lemire's blog","url":"https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4"},"datePublished":"2025-03-24T23:29:48.613Z","dateModified":"2026-03-15T03:28:41.210Z","description":"Fixed-precision integers are typically represented as either unsigned or signed. In C++20, signed integers must use two’s complement representation, which...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bbe0457140c752c31de5a29e591a3e0c?_a=AQAEuj9","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bbe0457140c752c31de5a29e591a3e0c?_a=AQAEuj9","isAccessibleForFree":true,"articleSection":"Daniel Lemire","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Daniel Lemire","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/33b93b4f779a45bdaca4a8d3d678fe39","url":"https://daily.dev/sources/lemire"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/unsigned-comparisons-using-signed-types-daniel-lemire-s-blog-1d30qw4n4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c,c++,computing","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Daniel Lemire","item":"https://daily.dev/sources/lemire"},{"@type":"ListItem","position":3,"name":"Unsigned comparisons using signed types – Daniel Lemire's blog"}]}
```

