Added some more HEX (dec_to_hex()) to Fun. (0.37.15)
This commit is contained in:
parent
9577f26e23
commit
37c5ae6f58
5 changed files with 66 additions and 2 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(fun VERSION 0.37.14 LANGUAGES C)
|
project(fun VERSION 0.37.15 LANGUAGES C)
|
||||||
|
|
||||||
set(CMAKE_C_STANDARD 99)
|
set(CMAKE_C_STANDARD 99)
|
||||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ print("Hex bytes array:")
|
||||||
bytes = hex_to_bytes(hexstr)
|
bytes = hex_to_bytes(hexstr)
|
||||||
print(to_string(bytes))
|
print(to_string(bytes))
|
||||||
|
|
||||||
echo("Hex dump to bytes:")
|
print("Hex dump to bytes:")
|
||||||
print(bytes)
|
print(bytes)
|
||||||
|
|
||||||
print("Back to hex from bytes:")
|
print("Back to hex from bytes:")
|
||||||
|
|
@ -44,6 +44,12 @@ print(to_string(hex_to_dec(substr(hexstr, 0, 8))))
|
||||||
print("Hex as decimal (all bytes):")
|
print("Hex as decimal (all bytes):")
|
||||||
print(to_string(hex_to_dec(hexstr)))
|
print(to_string(hex_to_dec(hexstr)))
|
||||||
|
|
||||||
|
print("Decimal to hex (4135093009263527588):")
|
||||||
|
print(dec_to_hex(4135093009263527588))
|
||||||
|
|
||||||
|
print("Decimal to hex (1353150228):")
|
||||||
|
print(dec_to_hex(1353150228))
|
||||||
|
|
||||||
/* Expected output:
|
/* Expected output:
|
||||||
--- Hex utility demo (fixed values) ---
|
--- Hex utility demo (fixed values) ---
|
||||||
Fixed Hex string:
|
Fixed Hex string:
|
||||||
|
|
@ -59,4 +65,8 @@ Hex as decimal (first 4 bytes - 0x50a76f14):
|
||||||
1353150228
|
1353150228
|
||||||
Hex as decimal (all bytes):
|
Hex as decimal (all bytes):
|
||||||
4135093009263527588
|
4135093009263527588
|
||||||
|
Decimal to hex (4135093009263527588):
|
||||||
|
3962cd2eea5a86a4
|
||||||
|
Decimal to hex (1353150228):
|
||||||
|
50a76f14
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
23
examples/test_dec_to_hex.fun
Normal file
23
examples/test_dec_to_hex.fun
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env fun
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Fun programming language.
|
||||||
|
* https://fun-lang.xyz/
|
||||||
|
*
|
||||||
|
* Copyright 2025 Johannes Findeisen <you@hanez.org>
|
||||||
|
* Licensed under the terms of the Apache-2.0 license.
|
||||||
|
* https://opensource.org/license/apache-2-0
|
||||||
|
*
|
||||||
|
* Added: 2025-12-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <hex.fun>
|
||||||
|
|
||||||
|
hexstr = "ff"
|
||||||
|
print("Hex to dec: " + to_string(hex_to_dec(hexstr)))
|
||||||
|
print("Dec to hex: " + dec_to_hex(hex_to_dec(hexstr)))
|
||||||
|
|
||||||
|
/* Expected output:
|
||||||
|
Hex to dec: 255
|
||||||
|
Dec to hex: ff
|
||||||
|
*/
|
||||||
19
examples/test_include.fun
Normal file
19
examples/test_include.fun
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env fun
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Fun programming language.
|
||||||
|
* https://fun-lang.xyz/
|
||||||
|
*
|
||||||
|
* Copyright 2025 Johannes Findeisen <you@hanez.org>
|
||||||
|
* Licensed under the terms of the Apache-2.0 license.
|
||||||
|
* https://opensource.org/license/apache-2-0
|
||||||
|
*
|
||||||
|
* Added: 2025-12-18
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <hex.fun>
|
||||||
|
print(dec_to_hex(255))
|
||||||
|
|
||||||
|
/* Expected output:
|
||||||
|
ff
|
||||||
|
*/
|
||||||
12
lib/hex.fun
12
lib/hex.fun
|
|
@ -87,3 +87,15 @@ fun hex_to_dec(hex)
|
||||||
res = res * 16 + hex_val(substr(s, i, 1))
|
res = res * 16 + hex_val(substr(s, i, 1))
|
||||||
i = i + 1
|
i = i + 1
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
fun dec_to_hex(n)
|
||||||
|
number val = n
|
||||||
|
if (val == 0)
|
||||||
|
return "0"
|
||||||
|
hexd = "0123456789abcdef"
|
||||||
|
res = ""
|
||||||
|
while val > 0
|
||||||
|
number m = val % 16
|
||||||
|
res = substr(hexd, m, 1) + res
|
||||||
|
val = val / 16
|
||||||
|
return res
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue