Om het probleem technisch weer te geven:
wordt er in het algemeen software gebruikt die hiertussen het verschil kan maken:
1
22
333
4444
en:
0001
0022
0333
4444
Want: 1e manier: zo "lezen" mensen het. Geen extra nullen "opslaan" die geen toegevoegde waarde geven.
2e manier: bit-notering:
1 wordt in 8 bits geschreven als (bijvoorbeeld): 00000001
2: 00000010
3: 00000011
4: 00000100
etc.
Een mens zou zo slim zijn om te zeggen:
1: 1
2: 10
3: 11
4: 100
En waarom zou een computer niet zo slim zijn om on the fly te lezen hoeveel cijfers er zijn en het zodoende juist te interpreteren? Dat scheelt opslag en communicatieproblemen.
Je kunt deze situatie creëren:
nummer 1234 (oud) is nummer 001234 (nieuw). Maar een mens kan 1234 en 001234 gescheiden zien.
Stel je de volgende situatie voor:
Je hebt een fabriek en je gaat alle machines nummeren. Je beslist: Ik gebruik 4 cijfers. Dan gebruik je 2 cijfers voor elke afdeling en 2 voor elke machine.
Stel dat afdeling 5 meer dan 100 apparaten heeft. Dan maakt het systeem een nieuwe nummergroep: 5 cijfers. Dus dan komt na 0599: 05100.
Bij het invoeren leest de software: 5 cijfer, eerste 2 is afdelingnummer, laatste 3 is machinenummer.
Maar dan is afdeling 99 bereikt. Wat nu? afdeling 100? Kan, maar let wel op:
de eerste machine van afdeling 100 kan dan niet 01 genoemd worden, aangezien je dan krijgt:
10001. Computer leest: 5 cijfers. Eerste 2 voor afdeling, laatste drie voor machinenummer.
Dus: 6-cijferig:
100001. Computer leest het nieuwe 6 cijferig nummer en bepaalt: eerste 3 afdeling, laatste 3 machinenummer.
Dan kan de computer de getallen altijd goed beheren, omdat bij elke lengte een bepaalde interpretatie bestaat die vastgelegd wordt en dan is het nog wel belangrijk bij weergeven van een nummer richting gebruiker (scherm, printen) dat deze getallen wel netjes een zichtbare scheiding krijgen.
Want 111011 en 110111 zijn makkelijk te verwarren, 111_011 en 110_111 al minder.
Maar goed...dat zijn geen leuke grappen dus...
Mijn doelvraag is dan:
Is die constructie softwarematig gestandaardiseerd?Orion84 schreef op donderdag 22 juli 2010 @ 15:31:
Ik snap niet helemaal welke kant je op wilt, maar na 999999999999 komt dan toch gewoon 1000000000000
Als er maar 12 positities beschikbaar zijn in de software die de opslag / verwerking doet, dan zal die software inderdaad moeten worden aangepast om een 13de cijfer kwijt te kunnen en eventueel nog wel overweg te kunnen met 12 cijferige codes.
Ja, precies. Na 999 komt 1000 (of hoe je het ook schrijft). Maar ga software maar eens vertellen dat na 999 1000 komt als deze ingericht is om 3 karakters weer te geven...
Bijvoorbeeld:
Je bent bezig om een database te maken met alle werknemers. Voornaam, achternaam, geboortedatum, etc. Nou kun je per veld bepalen hoeveel karakters je er kwijt kan. Omdat niet gebruikte karakters van een veld ook data innemen, wil je niet dat elk veld oneindig veel karakters heeft. Dus elke voornaam mag maximaal 32 tekens lang zijn. Nou is er één werknemer die, hoe gek ook, 33 tekens als voornaam heeft. Dus je past je database aan, je houdt rekening met namen die nog langer kunnen worden en je maakt daar maximaal 40 karakters van. Daardoor zal bij elk record 8 karakters extra aan data gebruikt worden, ongeacht of die data wel of niet wordt gebruikt.
Daarnaast: inderdaad: de software moet aangepast worden. En ook weer als er 14 cijfers in plaats van 13 gebruikt gaan worden. Om dan alle flauwekul tot in oneindigheid op te lossen: is er iets standaard bedacht, die om kan gaan met elke lengte, zonder de opslagkwestie? Zelfde voorbeeld zijn clusters van een harde schijf: hoe klein je bestandje ook is, het zal altijd een cluster data innemen. Al is je bestandje maar 1 bit.
downtime schreef op donderdag 22 juli 2010 @ 15:38:
[...]
Waarom zou een nummer oneindig lang moeten zijn? Wil je soms Pi gaan berekenen?
Voor een productnummer is 12 cijfers met 99% waarschijnlijkheid al meer dan genoeg. Anders pas je de software aan en leer je die dat een 12-cijferig nummer 000.000.000.123 niet hetzelfde is als een 13-cijferig nummers 0.000.000.000.123. Het is namelijk een nummer en geen getal dus bestaande nummers hoeven niet te wijzigen.
Ik loop tegen de 1% aan. Het specifieke probleem is het volgende:
Leverancier doet bestelling en geeft tekening als 12NC met de bestelling mee. Een tekening wordt hier intern behandeld als 11NC plus een versienummer (dat maakt bij elkaar een 12NC). Na 10 versiewijzigingen zal er een nieuw 11NC gemaakt moeten worden, dat kan technisch gezien niet. Dus wordt er omheen gewerkt: naast de versie bestaan er datumwijzigingen. Dus verschillende producten in een "uniek" 12NC.
Hoe kom je daar van af: oneindig-NC :d
Dan zou elke tekening kunnen beginnen met de 12NC van het product, gevolgd door een versienummer dat oneindig door kan lopen. Dan kan de 12NC nummering bestaan blijven en een nieuw nummeringsmanagement daar mee omgaan.
Orion84 schreef op donderdag 22 juli 2010 @ 15:42:
Als je wilt doornummeren is het niet zo handig om nadat de twaalfcijferige codes op zijn verder te gaan met twaalf nullen gevolgd door een 1 etc.
Gewoon nadat je de code bestaande uit 12 negens gehad hebt verder gaan met de code bestaande uit één 1 gevolgd door 12 nullen. En eventueel alle oude 12 cijferige codes omzetten naar (of bij elk gebruik herinterpreteren als) 0<oude-code>.
Nee, niet gaan omzetten...het punt is dat wij als mensen onderscheid kunnen maken tussen 1234 en 01234 en software moet dit ook gewoon kunnen. Anders zou alles omgezet worden naar 13NC, en dus bij ALLE informatie.
Als de software gewoon 12NC kan scheiden van andere getallen, is dat veel logischer.
Want dan kan 12NC blijven bestaan, want dat is iets van Philips en zit ongelooflijk ver ingebakken.
Want: Stel dat we overschakelen, moeten alle leveranciers overschakelen. En wie gaat dat betalen?
En hoe ver ga je dat doorvoeren? Moeten alle oude documenten gewijzigd worden? Ook van papier om misverstanden te voorkomen?