Decodering van binary16-waarden
Decodeer één ongetekend binary16-woord van 16 bits naar een numerieke waarde.
from math import copysign, ldexp
def binary16_value(word):
if type(word) is not int or not 0 <= word <= 65535:
raise ValueError("binary16.word")
sign = -1.0 if word & 0x8000 else 1.0
exponent, fraction = (word >> 10) & 31, word & 1023
if exponent == 31:
return copysign(float("nan") if fraction else float("inf"), sign)
value = ldexp(fraction, -24) if exponent == 0 else ldexp(1024+fraction, exponent-25)
return copysign(value, sign)| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
|---|---|
| Modellen | Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen. |
| Project | Test nullen met teken, subnormalen, oneindigheden en NaN, weiger booleans en ongeldige woorden zonder NaN-payloads te bewaren. |
from math import copysign, ldexp
def binary16_value(word):
if type(word) is not int or not 0 <= word <= 65535:
raise ValueError("binary16.word")
sign = -1.0 if word & 0x8000 else 1.0
exponent, fraction = (word >> 10) & 31, word & 1023
if exponent == 31:
return copysign(float("nan") if fraction else float("inf"), sign)
value = ldexp(fraction, -24) if exponent == 0 else ldexp(1024+fraction, exponent-25)
return copysign(value, sign)Beoordeel compacte getalformaten ook buiten gewone waarden
HalfJunia is AI-programmeersoftware voor Windows om bronwijzigingen te bespreken waarbij representatie belangrijk is. Wanneer een gedecodeerde waarde onjuist lijkt, neem dan het oorspronkelijke woord, het waargenomen resultaat en de verwachte interpretatie mee in het projectgesprek. Vraag het verbonden model de relevante broncode te onderzoeken voordat het een vertakking wijzigt die ook speciale waarden kan afhandelen.
Een binary16-decodeertaak kan bijvoorbeeld expliciete afhandeling vereisen van nul met teken, subnormale waarden, oneindigheden en NaN's. Vermeld dat de invoer een 16-bits woord zonder teken is en of het behouden van NaN-payloads buiten de eis valt. De taak heeft dan een afgebakend contract dat een beoordelaar kan vergelijken met de voorgestelde implementatie en aanroepende code.
Controleer in je eigen omgeving representatieve woorden voor elke categorie. Gebruik voor nul met teken een waarneming die het teken daadwerkelijk onderscheidt; gebruik voor NaN een passende categoriecontrole in plaats van gewone gelijkheid. Beoordeel de afwijzing van Booleaanse invoer en invoer buiten het bereik afzonderlijk. Enkele vertrouwde eindige waarden zijn nuttig, maar testen niet de vertakkingen die het gemakkelijkst over het hoofd worden gezien.
HalfJunia verbindt met ondersteunde OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar nodig. Waar je aanbieder een ongefilterd AI-model aanbiedt, kun je dat voor het programmeergesprek selecteren. De beperkingen, contextcapaciteit en tools blijven afhankelijk van model en server, en de uitleg blijft een te verifiëren voorstel.
Een beoordeling van een getalformaat voorbereiden
Welk bewijs moet bij een onverwachte gedecodeerde waarde worden gegeven?
Geef het exacte invoerwoord, de verwachte categorie en het waargenomen resultaat, samen met de aanroepende code die het gebruikt. Vertrouw niet alleen op een afgeronde weergavetekst. De bespreking van de broncode heeft voldoende detail nodig om representatieafhandeling te onderscheiden van latere opmaak in de interface.
Kan gewone gelijkheid elke speciale waarde verifiëren?
Nee. Kies controles die bij de categorie passen, waaronder tekengevoelige waarneming voor nul en een passende NaN-test. Leg die verwachtingen vast in de taak en voer ze uit in je werkelijke omgeving, zodat de voorgestelde decoder op meer dan gewone eindige gelijkheid wordt beoordeeld.
Mag behoud van NaN-payloads worden aangenomen?
Alleen als het een expliciete eis is die de implementatie ondersteunt. De illustratieve decodeertaak behoudt geen payloads. Als de afnemer die nodig heeft, beschrijf dan dat afzonderlijke contract voordat je een voorstel accepteert dat alleen een numerieke categorie of waarde retourneert.
Waarom Booleaanse invoer opnemen in afwijzingstests?
Sommige typeverhoudingen in programmeertalen kunnen die via een brede controle op gehele getallen toelaten. Als je contract een echte woordwaarde vereist en Booleaanse waarden uitsluit, vermeld dat expliciet. Verifieer dat onderscheid samen met het geaccepteerde bereik in plaats van op een informele typebeschrijving te vertrouwen.
HalfJunia · Bijgewerkt 2026-10-25