67 lines
1.4 KiB
Text
67 lines
1.4 KiB
Text
morph_digit_as_char_to_uint8 (Radix:ℤ)
|
||
<Digit Radix> ~ Char ~ Ascii ~ x86.UInt8
|
||
--> <Digit Radix> ~ x86.UInt8
|
||
```
|
||
if( *src >= '0' && *src <= '9' )
|
||
*dst = *src - '0';
|
||
else if( *src >= 'a' && *src <= 'f')
|
||
*dst = 0xa + *src - 'a';
|
||
else if( *src >= 'A' && *src <= 'F')
|
||
*dst = 0xa + *src - 'A';
|
||
else
|
||
return -1;
|
||
|
||
if( *dst < Radix ) {
|
||
return 0;
|
||
} else {
|
||
return -1;
|
||
}
|
||
```
|
||
|
||
morph_digit_as_char_to_uint64 (Radix:ℤ)
|
||
<Digit Radix> ~ Char ~ Ascii ~ x86.UInt8
|
||
--> <Digit Radix> ~ x86.UInt64
|
||
```
|
||
if( *src >= '0' && *src <= '9' )
|
||
*dst = *src - '0';
|
||
else if( *src >= 'a' && *src <= 'f')
|
||
*dst = 0xa + *src - 'a';
|
||
else if( *src >= 'A' && *src <= 'F')
|
||
*dst = 0xa + *src - 'A';
|
||
else
|
||
return -1;
|
||
|
||
if( *dst < Radix ) {
|
||
return 0;
|
||
} else {
|
||
return -1;
|
||
}
|
||
```
|
||
|
||
morph_digit_as_uint8_to_char (Radix:ℤ_16)
|
||
<Digit Radix> ~ x86.UInt8
|
||
--> <Digit Radix> ~ Char ~ Ascii ~ x86.UInt8
|
||
```
|
||
if ( *src < 10 )
|
||
*dst = *src + '0';
|
||
else if( *dst < 16 )
|
||
*dst = *src - 0xa + 'a';
|
||
else
|
||
return -1;
|
||
|
||
return 0;
|
||
```
|
||
|
||
morph_digit_as_uint64_to_char (Radix:ℤ_16)
|
||
<Digit Radix> ~ x86.UInt64
|
||
--> <Digit Radix> ~ Char ~ Ascii ~ x86.UInt8
|
||
```
|
||
if ( *src < 10 )
|
||
*dst = *src + '0';
|
||
else if( *dst < 16 )
|
||
*dst = *src - 0xa + 'a';
|
||
else
|
||
return -1;
|
||
|
||
return 0;
|
||
```
|