Zdravim.
Mam nieco taketo
from ctypes import *
import time
from datetime import datetime
import random
from copy import *
myDataBuf = c_uint32 * 128
data = myDataBuf(
#se potrebujem napchat data zvysok je len dummy example
0x06296D6B,#5
0xF6A1822C,#6
0x5DE757FC,#7
0xD18701CB,#8
0xBCCBC569,#9
0x16F3B195,#10
0x2D341EBD,#11
0xCA3A82CA,#12
0x60476571,
0x707AE71A,#14
0x30FE1FD6,#15
0x93AF59A6,#16
0xBF55FB3A,#17
0x68AED45C,#18
0xB30026F4,#19
0x6DE5D252,#20
0x656700EE,#21
0xA2D032E2,#22
0x24E59AAB,#23
0xB1141F0C,#24
0x73F78D5A,#25
0xF72A9248,#26
0x5588B1C6,#27
0x14AB0A99,#28
0x00000000,#29
0xB24F611F,#30
0x20679C40,#31
0xF6779507,#32
0x673627C6,#33
0xC551ABAE,#34
0xBD2DCE66,#35
0x8749FF30,#36
0xB90D80B5,#37
0x70D94DA3,#38
0x111FCBA3,#39
0xC304A7A0,#40
0xCDFBE183,#41
0x9AFCBDB3,#42
0x44F8EED6,#43
0x4F277533,#44
0x9C67BAE2,#45
0x445DA080,#46
0x6158BDCF,#47
0xED973DFA,#48
0x66D8784F,#49
0x511EB574,#50
0x14CD205E,#51
0x00000000,#52
0x17FA9AC9,#53
0x6EB054EC,#54
0xE08E5907,#55
0x196AA748,#56
0xC36DC097,#57
0x01F32DC4,#58
0x06600410,#59
0xB67D8A00,#60
0x7D216FCC,#61
0x801CC79E,#62
0x1AF20C41,#63
0xB51080B1,#64
0x447F668E,#65
0x55147C4F,#66
0x1950E8AC,#67
0x6AFEBF02,#68
0x5CA5C3E5,#69
0xA0447364,#70
0xB8B4465E,#71
0x0889E8C1,#72
0x71285995,#73
0x51775419,#74
0x19F3EEC3,#75
0x954BB2F7,#76
0x8AD05795,#77
0x4C709132,#78
0x7413FF95,#79
0xF0EE116C,#80
0x67908362,#81
0x98B377D6,#82
0x8110546D,#83
0x4DF1E5BD,#84
0xD8AFB2D5,#85
0x37275093,#86
0x671FF7A0,#87
0x9CBF7442,#88
0x193832AA,#89
0x8CB33FA5,#90
0xBCA5F4E9,#91
0x14B37FBC,#92
0x54115127,
0x3F2ABDD7,#94
0xA13B465E,#95
0x5D76B260,#96
0xC6E34A8A,#97
0x9408AA04,#98
0xB6D0AB81,#99
0x9DBB9926,#100
0x14E5F865,#101
0x88D55D87,#102
0x89B777F4,#103
0x48C191B8,#104
0x7F60BC8F,#105
0x0094F2A9,#106
0x0CA650BF,#107
0xC5355FFB,#108
0x94D10C67,#109
0x2CBEB947,#110
0xBA24F337,#111
0x1E2FBBC7,#112
0x7384A8DB,#113
0x6F618370,#114
0xB4FFEA3B,#115
0xA1ECDDAB,#116
0x8FF4491B,#117
0x12C7228D,#118
0x955B7135,#119
0x57080F30,#120
0xB6FD85CF,#121
0xADFD83A4,#122
0xB4FD1FE3,#123
0xE19B49E6,#124
0x4D02DFFC,#125
0x3EE6584E,#126
0xD8749A62)#127
ako do toho myDataBuf pridam cez python novu hodnotu? Skusal som vsetko mozne ale neviem si poradit.
resp. ako pridam hex? Python ho defaultne formatuje ako string co mi nechce spapat.
d = get_random_data(8)
d = "0x" + d
d = int(d,16)
D1 = hex(d)
To jeste porad resis? Vzdit uz je to nekolik mesicu? Bylo ti davno doporuceno nastudovat praci s binarnima datama v Pythonu,
napriklad pres 'struct' knihovnu. Nechapu..
Pletes si dohromady data a jejich reprezentaci
i1 = 0x0f # cislo
i2 = 15 # to same cislo
hex(i1) # retezec
hex(i2) # ten samy retezec
Jestlize data je pole cisel (konkretne typu c_uint32) a get_random_data() vraci cislo (v rozsahu uint32), priradis to cislo normalne do pole takto:
data[1] = get_random_data()
Zadna veda tam neni. Zadny prevod na hexadecimalni cislo se nekona, protoze hexadecimalni cislo je format pro lidi a ne pro stroj.
Ink : Dakujem to bola cesta
IDontCare : nuz zasa sa mi to dostalo na stol. toto bolo zasa nieco ine ale dakujem dostudujem si to.
este ma tak napada.
Ak mam hex tak ho konvertujem skrz int(hex_string, 16) na integer. So far so good. Problem nastane ak ho chcem napchat do toho myBuff. Proste sa odsekne 0 na zaciatku co je ok s principu pythonu. Ako to vsak vyriesit tak aby som tam tu 0 na zaciatku mal?
Teda mam
data = myDataBuf(
0x06296D6B,
data[0] = 123456[/code]
rozmyslal som nad zfill ale to je len pre string. Existuje kniznica/funkcia ktora by len spravila replace "odzadu" pre int?
Citace od: Wangarad kdy 27. 05. 2021, 09:00:10
este ma tak napada.
Ak mam hex tak ho konvertujem skrz int(hex_string, 16) na integer. So far so good. Problem nastane ak ho chcem napchat do toho myBuff. Proste sa odsekne 0 na zaciatku co je ok s principu pythonu. Ako to vsak vyriesit tak aby som tam tu 0 na zaciatku mal?
Teda mam
data = myDataBuf(
0x06296D6B,
data[0] = 123456[/code]
rozmyslal som nad zfill ale to je len pre string. Existuje kniznica/funkcia ktora by len spravila replace "odzadu" pre int?
Porad dokola, pro retezec se to formatuje treba
"0x%08x" % 0x06296D6B
"0x{:08x}".format(0x06296D6B)Pro ciselny typ nic takoveho nedava smysl. 010 je (v desitkove soustave, ted to neberu jako oktalovy zapis) stejna hodnota jako 10, 0010 i 000010.