Hacker News new | past | comments | ask | show | jobs | submit login
New Playground: Integer.exposed (jvns.ca)
86 points by duck on May 6, 2023 | hide | past | favorite | 12 comments



> The UI is a little different: integers don’t have many different parts the way floating point numbers do

Depends, they could if the site gave access to common varint formats for instance.

Also can't help but think it's the wrong way around? I feel like when you play with byte order you want to see how the bits change for a given number, rather than the number for the same bits. Though I guess both are valuable, depends on your use case (whether you have a bit pattern and try to understand what it is, or have a number and try to see how it would encode).

Exploring signed representations could also be useful.


> I feel like when you play with byte order you want to see how the bits change for a given number, rather than the number for the same bits.

+1, as someone who is exclusive working on a big endian architecture this will be really helpful.

related but slightly tangent: I hope there is a button for toggling 2's complement.


I like little online tools like this! Suggestion: include some notes in the tool page itself on safe ints and references like https://blogs.mathworks.com/cleve/2017/05/08/half-precision-...


I had no idea that 1111..1111 was the smallest negative integer as opposed to 1000..0001.

How did I not know that after nearly 25 years of programming? I must be dumb.


You just didn't happen to hit that particular thing in that time, there'll be a long list like that for all coders. The subset of coding and computer science anyone interacts with will always be small compared to the entirety of the field.


Having 1000...0001 represent -1 would be sign-magnitude representation. Having 1111...1111 be -1 is two's complement. Computers usually use two's complement for integers, because it makes addition and multiplication really easy to implement. Floating point actually is closer to sign-magnitude, though.


And sign-magnitude representation would lead to +0 and -0 being two different bit patterns, which would mean == on integers couldn't be a direct byte comparison anymore. Undesirable.


You learn something new every day!

The lowest negative integer is still 1000…0000, though.


1111…1111 is −1.

1000…0000 is the minimum.


I'm confused by what you are saying?

111..11111 = -1 (for Nbit) 100..00000 = -2147483648 (for 32bit)

Therefore 11...1 is smaller than 100...01? Maybe I am dumb and missing something? Can anyone help?


if Julia is here, the HTML has an error:

"style" element between "head" and "body"


Who is going to make boolean.exposed?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: