Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
Software LibrePods osvobozuje bezdrátová sluchátka AirPods z ekosystému Applu. Exkluzivní funkce AirPods umožňuje využívat na Androidu a Linuxu. Díky zdokumentování proprietárního protokolu AAP (Apple Accessory Protocol).
Byl vydán AlmaLinux OS 10.1 s kódovým názvem Heliotrope Lion. S podporou Btrfs. Podrobnosti v poznámkách k vydání.
Placená služba prohledávání zprostředkovatelů dat a automatického odstraňování uniklých osobních údajů Mozilla Monitor Plus bude 17. prosince ukončena. Bezplatná monitorovací služba Mozilla Monitor bude i nadále poskytovat okamžitá upozornění a podrobné pokyny k omezení rizik úniku dat. Služba Mozilla Monitor Plus byla představena v únoru loňského roku.
Waydroid (Wikipedie, GitHub) byl vydán v nové verzi 1.6.0. Waydroid umožňuje spouštět aplikace pro Android na běžných linuxových distribucích. Běhové prostředí vychází z LineageOS.
Příspěvek na blogu Raspberry Pi představuje novou kompletně přepracovanou verzi 2.0 aplikace Raspberry Pi Imager (YouTube) pro stažení, nakonfigurování a zapsání obrazu operačního systému pro Raspberry Pi na SD kartu. Z novinek lze vypíchnout volitelnou konfiguraci Raspberry Pi Connect.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 8.00. Přináší podporu nejnovějších procesorů Intel a AMD nebo také tmavý režim.
Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).
Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.
#include <cstdio>
#include <iostream>
int main(int argc, char** argv)
{
float f = 1.23456f;
unsigned int raw_f;
char* raw_f_cstr;
/* raw_f = *(unsigned int*)&f; <- Starý Cčkový způsob */
/* C++ovější způsob */
raw_f = *reinterpret_cast<unsigned int*>(&f);
/* Jako unsigned int */
std::cout << f << " " << raw_f << " " << std::hex << raw_f << std::endl;
/* Převod na Cčkový string */
asprintf(&raw_f_cstr, "%x", raw_f);
std::cout << raw_f_cstr << std::endl;
return 0;
}
Jen tak mimochodem, převádět hexadecimální řetězec do binárního switchem je trochu dřevorubecké, udělal bych to spíš takhle
#define BITS_IN_INT (sizeof(int) * 8)
#define MAX_HEX_NUMS (sizeof(int) * 2)
std::string hex_to_bin(const std::string s)
{
size_t steps;
size_t sl;
std::string bin_out;
sl = s.length();
if (sl == 0)
return "";
steps = sl / MAX_HEX_NUMS;
if (!(sl % MAX_HEX_NUMS))
steps--;
bin_out.reserve((steps + 1) * BITS_IN_INT + 1);
for (size_t idx = 0; idx <= steps; idx++) {
int num;
size_t from_idx = MAX_HEX_NUMS * idx;
std::string ss = s.substr(from_idx, MAX_HEX_NUMS);
if (sscanf(ss.c_str(), "%x", &num) < 1) {
std::cout << "Invalid input" << std::endl;
return "";
}
for (size_t sidx = 0; sidx < BITS_IN_INT; sidx++) {
if (num & (1 << (BITS_IN_INT - sidx - 1)))
bin_out.append("1");
else
bin_out.append("0");
}
}
return bin_out;
}
mantissa = input & 0x7fffff; exponent = input >> 24; sign = (input >> 23) & 1; result = sign * mantissa * exponent * 2e-23
Zatim mi ale nenapada ta obracena cesta, tedy z cisla ziskat ten hex-string. (a nejaky takovy srozumitelny navod jsem nenasel).A v čem máš problém? Vždyť je to napsaný v tom dokumentu. A proč nemůžeš vzít normální IEEE float a prostě přehodit exponent a sign?
Tiskni
Sdílej: